全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 python论坛
1306 0
2016-06-16

UIkit框架http://www.maiziedu.com/course/18/,关于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.同样这个方法也是一个构造方法,但不在于,这个方法是在特殊(当对象是从文件(不仅仅只是 xibstoryboard)中创建)的时候调用.同样在这个方法中我们也可以为 控件 添加我们想要的控件;
  但是这里有一点是要注意:

  在这个方法调用的时候,xib 或者 storboard 与文件的连线还没有生成;所以在这里调用方法是无效的,请注意这点.

// 当对象从文件(不单单只xibsb)中创建的时候调用

- (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


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群