UIView

来源:互联网 发布:网络教育有哪些大学 编辑:程序博客网 时间:2024/06/10 05:09

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

0 0