欢迎加入QQ讨论群258996829
麦子学院 头像
苹果6袋
6
麦子学院

有关UIview的几个常用方法

发布时间:2016-06-16 23:33  回复:0  查看:2723   最后回复:2016-06-16 23:33  
UIkit框架 ,关于 UIview ,有几个常用的方法以及其使用的场景,这里给大家总结一下。
初始化方法
1. 这个方法就是大家熟悉的构造方法 , 在初始化 控件 的时候调用 , 我们可以在这个方法内为这个 控件 添加一些控件 , 这样 , 当我们创建完成这个 控件的时候 , 这个 控件 中就有了我们想要的控件 ;
- (instancetype)init {
    if (self = [super init]) {
        //  添加子控件
    }
    return self;
}
2. 这个方法也是一个构造方法 , 与上面的 -init  方法的区别仅在于在这个构造方法中 , 我们要传入一个  frame, 以便我们在初始化 控件 的时候可以给 控件 指定我们传入的  frame; 同样在这个方法中我们也可以为 控件 添加我们想要的控件 ;
- (instancetype)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        //  添加子控件
    }
    return self;
}
3. 同样这个方法也是一个构造方法 , 但不在于 , 这个方法是在特殊 ( 当对象是从文件 ( 不仅仅只是  xib storyboard) 中创建 ) 的时候调用 . 同样在这个方法中我们也可以为 控件 添加我们想要的控件 ;
但是这里有一点是要注意 :
在这个方法调用的时候 ,xib  或者  storboard  与文件的连线还没有生成 ; 所以在这里调用方法是无效的 , 请注意这点 .
//  当对象从文件 ( 不单单只 xib sb) 中创建的时候调用
- (instancetype)initWithCoder:(NSCoder *)aDecoder {
    if (self = [super initWithCoder:aDecoder]) {
        //  添加子控件
        //  在该方法调用的时候 ,xib/sb 中关联的控件还没有连好线 .
    }
    return self;
}
其它方法
#pragma mark -  当控制器从 xib/sb 中创建时调用
- (void)awakeFromNib {
    //  添加子控件
    //  获得 xib/sb 中子控件 , 给子控件属性设置
}
这个方法 , 当添加子 ` 控件 ` 时或当前控件 frame 发生改变时 ( 改变前和改变后的 frame 要不一致 );
#pragma mark - 一般在这个方法里面对构造方法中添加的 ` 控件 ` 的  frame  进行设置
- (void)layoutSubviews {
    [super layoutSubviews];
    //  布局子控件的 frame
}
#pragma mark -  当类被加载时调用
+ (void)load {
}
#pragma mark -  当类第一次使用时调用
+ (void)initialize {
}
原文来自:简书/ TobyoTenma
您还未登录,请先登录

热门帖子

最新帖子