1.自定义视图
自定义视图:将多个控件封装,用于多个项目中,大大降低开发成本,提高开发速率
高质量代码特点:高内聚,低耦合
首先创建一个类,名为LTView,继承自UIView
在.h文件中添加UIlabel和UITextField属性,还有自定义初始化方法
@property (strong, nonatomic) UILabel *label;
@property (strong, nonatomic) UITextField *textField;
- (instancetype)initWithFrame:(CGRect)frame text:(NSString *)text font:(UIFont *)font placeholder:(NSString *)placeholder;
最后在.m方法中完成自定义初始化方法
- (instancetype)initWithFrame:(CGRect)frame text:(NSString *)text font:(UIFont *)font placeholder:(NSString *)placeholder {
if (self = [self initWithFrame:frame]) {
CGFloat viewW = frame.size.width;
CGFloat viewH = frame.size.height;
CGFloat labelW = (viewW - 15) / 3;
CGFloat labelH = viewH - 10;
self.label = [[UILabel alloc] initWithFrame:CGRectMake(5, 5, labelW, labelH)];
self.label.text = text;
self.label.font = font;
[self addSubview:self.label];
self.textField = [[UITextField alloc] initWithFrame:CGRectMake(5 + labelW, 5, labelW * 2, labelH)];
self.textField.placeholder = placeholder;
self.textField.borderStyle = UITextBorderStyleRoundedRect;
[self addSubview:self.textField];
}
return self;
}
要调用的时候不要忘记引入头文件
效果图.png
2.视图控制器
视图控制器:数据与视图之间的的重要桥梁,UIViewController是所有视图控制器的父类
视图控制器的功能:
- 控制视图大小变换、布局视图、响应时间
- 检测以及处理内存警告
- 检测以及处理设备旋转
- 检测视图的切换
- 实现模块独立,提高复用性
重要方法重写:
当加载视图的时候调用,一般用于指定自定义视图
- (void)loadView;
当视图加载完毕之后调用,整个视图生命周期中只调用一次
- (void)viewDidLoad;
当接收到内存警告时调用的方法,在其中处理内存问题
- (void)didReceiveMemoryWarning;
支持设备旋转方向的方法,
- (UIInterfaceOrientationMask)supportedInterfaceOrientations;
当视图将要显示时调用的方法
- (void)viewWillAppear:(BOOL)animated;
当视图将要被覆盖或者消失时调用的方法
- (void)viewWillDisappear:(BOOL)animated;
当视图已经显示时调用的方法
- (void)viewDidAppear:(BOOL)animated;
当视图已经被覆盖或者消失时调用的方法
- (void)viewDidDisappear:(BOOL)animated;
3.MVC
MVC:一个框架级的设计模式
- M: Model,数据模型
- V: View,用于展示数据的视图
-
C: Controller,负责数据模型与视图的通信
只要理解了这幅图,就掌握了MVC框架.png