UIView

UIView为所有控件的父类

关于视图控制器

视图控制器用来控制view和model之间的交互,在IOS中,用UIViewController表示视图控制器
此类中有一些特定的方法需要开发者在开发过程中完成
1、初始化的方法
2、加载视图的方法
3、控制视图横竖屏的方法
4、内存管理方法

1、初始化的方法
初始化方法有两个
/*********初始化方法***********/
- (id)init {

    if (self = [super init]) {

    }


    return self;
}

- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {

    }
    return self;
}

2、加载视图的方法
(1)加载视图时调用的方法

- (void)loadView {
}

(2)加载完成时调用的方法

- (void)viewDidLoad {
}

以上两个方法在视图控制类被实例化之后,只会执行一次,以后不会提及
(3)视图将要出现调用的方法

- (void)viewWillAppear:(BOOL)animated {
//视图将要出现
    [super viewWillAppear:animated];
    NSLog(@"视图将要出现");
}

(4)视图已经出现调用的方法

- (void)viewDidAppear:(BOOL)animated {
    //视图已经出现
    [super viewDidAppear:animated];
    NSLog(@"视图已经出现");
}

(5)视图即将消失调用的方法

- (void)viewWillDisappear:(BOOL)animated {
    //视图将要消失
    [super viewWillDisappear:animated];
    NSLog(@"视图将要消失");
}

(6)视图已经消失调用的方法

- (void)viewDidDisappear:(BOOL)animated {
    //视图已经消失
    [super viewDidDisappear:animated];
    NSLog(@"视图已经消失");
}

布局视图:视图控制器的根视图或子视图的位置大小(frame)发生改变时,将会执行以下两个方法
(7)将要重新布局视图调用的方法

- (void)viewWillLayoutSubviews {

    NSLog(@"1");
    [super viewWillLayoutSubviews];
}

(8)新布局已经完成调用的方法

- (void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];
    NSLog(@"2");
}

小结:

1、一个控制器必带一个根视图,根视图控制器所展示的页面为根视图的页面;
2、一个视图有且仅有一个父视图,可以有多个兄弟视图和子视图
3、每个视图都有添加子视图的方法:addSubview
4、UIView类有3个属性:bounds,frame,center
frame和bounds的区别
(1)frame:有参照物,参照物为父视图的左上角
(2)bounds:参照物为自己
5、用户交互方面;
view1.userInteractionEnabled = YES;//只有相框默认为no,其他都为YES,表示不允许用户交互,即用户不可以点击
6、每个view都有一个tag属性
UIView *view = [self.view viewWithTag:100];//返回值类型不是UIView可以以强制转换,返回tag为100的view

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值