他的好处就是在程序执行viewDIdLoad之前可以把我们需要用的数据加载完成.这也是减轻控制器的负担之一的办法.但是我个人觉得好是每有数据的延迟加载的功能牛.延迟加载只在数据需要的时候才被加载到视图,而不是一下子全部加载.
------------------------------------------------------------------------------------------------------------------
在创建之前,来比较一个指定自定义VIEW和自定义视图控件的区别
相同之处:
在创建的时候,第三步是一样的
不同之处:
第一步是不同的:
自定义视图控件:
在使用该自定义视图控件前,就要形成一个功能相对稳定,布局完成的,可复用性强的view.
并且在该视图的.h文件中声明了该视图中所拥用到的所有的属性.
在.m文件中要实现要实现对该控件的初始化功能,并添加到视图中.
指定自定义的View:
等价与一个新开辟的控制器,可以很随意的去设置页面的内容.
第二步是不同的:
自定义视图控件:
在使用该视图控件的时候,先引入头文件类,然后拿出视图进行初始化控制,在赋值的时候,方可去除视图的属性来赋值操作. 而后在添加到当前视图中
指定自定义的View:
1:首先要是控制器中的.h文件中声明一个类型为uiview的属性
2:在调用的时候,要映入头文件.
要自定义指定view的时候就要在该控制器的.m文件中重写-(void)loadView的方法.并且在里面完成两步操作.
2.1:去除自定的view给当前属性的uiview
2.2:把当前属性的uiview给当前的self.view
----------------------------------------------------------------------------------------------------
创建步骤如下:
1:首先创建一个控制器继承自UIView
2:创建一个uiviewcontroller,在.h文件中引入我们创建的view,并且声明一个为uiview的属性,在.m文件中引入自定义的uiview,并且在.m中重写loadview方法.
3:在appdelgate.m设置启动文件.
实现方法如下
1:创建一个loginView继承自UIView,我们这里只在该文件的.m文件中实现把该窗口的背景搞成红色
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
self.backgroundColor = [UIColorredColor];
}
return self;
}
2:创建一个控制器MainViewController继承自UIViewController
在该控制器的.h文件中引入loginView类
声明属性@property(nonatomic,retain)UIView *Rview;
——————————————————————————————————————————————
在MainViewController.m文件中同样引入loginView类,并且在实现的时候要重写父类的loadView方法
-(void)loadView
{
/**
* 取出logview给self.Rview
*/
self.Rview = [[[loginView alloc] initWithFrame:[UIScreen mainScreen].bounds]autorelease];
/**
* 替换视图
*/
self.view = self.Rview;
}
3:在appdelegate.m中设置启动控制器
引入头文件 #import “loginView.h"
实现代码如下
MainViewController *mvc = [[MainViewController alloc] init];
self.window.rootViewController = mvc;
iOS中视图控制器指定自定义UIView
于 2015-07-15 10:44:14 首次发布