楼主: z74646
1078 0

[其他] 关于UIview,这几个方法你必须知道 [推广有奖]

  • 0关注
  • 1粉丝

本科生

75%

还不是VIP/贵宾

-

威望
0
论坛币
300 个
通用积分
0
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
890 点
帖子
55
精华
0
在线时间
12 小时
注册时间
2014-2-26
最后登录
2016-7-2

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

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


二维码

扫码加我 拉你入群

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

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

关键词:view VIE instance Initial RETURN return

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 06:47