设置控件的frame

设置控件的frame

// 通过代码创建当前这个视图的时候会调用

// 初始化当前这个view的时候会调用

1. 1    这个方法中只能添加控件,不能设置控件的frame属性

            - (instancetype)init

1.2 可以添加控件,也可以设置控件的frame,但是设置的frame在控件加载完成后不会在更新

       了(重用的时候不会更新了)

      - (instancetype)initWithFrame:(CGRect)frame

通过文件(XIB,原型**)去创建当前视图的时候调用

2.1  执行这个方法的时候,不能确定文件相关的连线等工作是否都做好了

        - (instancetype)initWithCoder:(NSCoder *)aDecoder

2.2  只有与文件相关的连线等工作都做好的时候,才会调用这个方法,不需要调用父类的什么方法

         - (void)awakeFromNib

3  设置布局子控件的frame

- (void)layoutSubviews

{

[super layoutSubviews];

// 在XCode7 之后可能不会刷新你要获取的控件的frame,需要手动刷新

eg:

[self.titleLabel layoutIfNeeded];

......

}

4> 当一个控制器的frame基于另外一个控制器的frame确定之后才确定,则设置与frame有关的代码要在该方法中调用,

该方法在viewDidLoad之后调用

- (void)viewDidLayoutSubviews

{

[super viewDidLayoutSubviews];

// 要实现的代码

}

你可能感兴趣的:(设置控件的frame)