1.自定義視圖
自定義視圖:將多個(gè)控件封裝棍矛,用于多個(gè)項(xiàng)目中安疗,大大降低開發(fā)成本,提高開發(fā)速率
高質(zhì)量代碼特點(diǎn):高內(nèi)聚够委,低耦合
首先創(chuàng)建一個(gè)類茂契,名為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;
}
要調(diào)用的時(shí)候不要忘記引入頭文件
2.視圖控制器
視圖控制器:數(shù)據(jù)與視圖之間的的重要橋梁掉冶,UIViewController是所有視圖控制器的父類
視圖控制器的功能:
- 控制視圖大小變換、布局視圖脐雪、響應(yīng)時(shí)間
- 檢測(cè)以及處理內(nèi)存警告
- 檢測(cè)以及處理設(shè)備旋轉(zhuǎn)
- 檢測(cè)視圖的切換
- 實(shí)現(xiàn)模塊獨(dú)立厌小,提高復(fù)用性
重要方法重寫:
當(dāng)加載視圖的時(shí)候調(diào)用,一般用于指定自定義視圖
- (void)loadView;
當(dāng)視圖加載完畢之后調(diào)用战秋,整個(gè)視圖生命周期中只調(diào)用一次
- (void)viewDidLoad;
當(dāng)接收到內(nèi)存警告時(shí)調(diào)用的方法璧亚,在其中處理內(nèi)存問題
- (void)didReceiveMemoryWarning;
支持設(shè)備旋轉(zhuǎn)方向的方法,
- (UIInterfaceOrientationMask)supportedInterfaceOrientations;
當(dāng)視圖將要顯示時(shí)調(diào)用的方法
- (void)viewWillAppear:(BOOL)animated;
當(dāng)視圖將要被覆蓋或者消失時(shí)調(diào)用的方法
- (void)viewWillDisappear:(BOOL)animated;
當(dāng)視圖已經(jīng)顯示時(shí)調(diào)用的方法
- (void)viewDidAppear:(BOOL)animated;
當(dāng)視圖已經(jīng)被覆蓋或者消失時(shí)調(diào)用的方法
- (void)viewDidDisappear:(BOOL)animated;
3.MVC
MVC:一個(gè)框架級(jí)的設(shè)計(jì)模式
- M: Model脂信,數(shù)據(jù)模型
- V: View癣蟋,用于展示數(shù)據(jù)的視圖
-
C: Controller,負(fù)責(zé)數(shù)據(jù)模型與視圖的通信