一. 自定义视图(Label与TextField组合视图)
相当于一个视图上自带了两个控件,并且这两个控件均为懒加载模式进行对象创建.自定义视图中的控件均为视图的属性,提高开发效率.
高质量代码的特点:可复用,可移植,精炼(等,高内聚,低耦合).
自定义LTView使用了一种设计模式:复合设计模式.即:A类中使用B类或者更多类作为自己的成员.(实例变量).
二. 视图控制器
视图控制器是应用程序数据与视图之间的重要桥梁.每个iOS应用程序只显示一个用户界面,显示的内容是由控制器或者一组视图控制器协调完成.UIViewController是所有视图控制器的父类.
视图控制器的功能:
1. 控制视图大小变换,布局视图,响应事件;
2. 检测以及处理内存警告;
3. 检测以及处理屏幕旋转;
4. 检测视图切换;
5. 实现模块独立,调高复用性.
在视图控制器的viewDidLoad方法中可以设置视图控制器的背景颜色.
视图控制器的view是通过懒加载来实现的,在view的getter方法中会判断如果视图不存在,则会调用loadView方法去创建一个全屏视图.提供loadView方法调用,是为了方便子类重写方法改变父类中默认的view对象.
三. 视图控制器指定视图
在视图控制器指定自定义视图,重写loadView方法,进行修改成为加载事先设计好的view
四. MVC
MVC是一个框架级的设计模式.Model View Controller
M:主要简历数据模型
V:进行功能展示
C:控制M与V的通信
可以提高系统的可维护性,以及可扩展性.
五. 屏幕旋转
iOS屏幕有4个方向Portrait,UpsideDown,LandSpaceLeft,LandSpaceRight.
检测屏幕旋转:
试图控制器本身能检测到屏幕旋转
supportedInterfaceOrientations的方法 返回值设置为:UIInterfaceOrientationMaskAll 为4方向全部支持.
自适应旋转后屏幕上的空间不发送旋转
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id)coordinator
size的为翻转后的屏幕尺寸的大小.
六. 内存警告
释放懒加载的资源
//当应用程序接收到内存警告时,会通知所有存在的视图控制器对象,所有存在的视图控制器对象通过此方法判定自己的视图加载过,并且当前没有显示时,暂时释放视图的内存,以减缓内存压力.等到再次被使用时通过懒加载继续加载视图.所以处理内存警告是需要释放可被重建的资源的.
if (self.isViewLoaded && !self.view.window) {
self.view = nil;
}
视图控制器的生命周期:
initWithNibName初始化方法;
loadView;将加载视图
viewDidLoad;加载视图
viewWillAppear;将出现
viewDidAppear;正在出现
viewWillDisAppear;将消失
viewDidDisAppear;正在消失