美文网首页
UIView的封装

UIView的封装

作者: 乐乐的熊 | 来源:发表于2018-11-28 21:34 被阅读0次

    https://www.jianshu.com/p/911468e948ee

    layoutSubviews在以下情况下会被调用:
    init初始化不会触发layoutSubviews
    addSubview会触发layoutSubviews
    设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化
    滚动一个UIScrollView会触发layoutSubviews
    旋转Screen会触发父UIView上的layoutSubviews事件
    改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件

    一共2种创建方式

    1、使用纯代码

    1.新建一个继承UIView的类
    2.在刚刚新建类的类扩展中添加子控件属性(用weak声明,防止内存泄露)??
    3.在initWithFrame:方法中添加子控件
    4.在layoutSubviews方法中设置子控件的frame(在该方法中一定要调用[super layoutSubviews]方法)
    5.提供一个模型属性,重写模型属性的set方法
    6.在该setter方法中取出模型属性,给对应的子控件赋值

    如果model属性不多,可以直接添加属性,然后重写该属性的set方法;这样写,外部使用时更加方便;

    2、使用xib

    通过xib\storyboard创建
    初始化时不会调用initWithFrame:方法,只会调用initWithCoder:方法,初始化完毕后会调用awakeFromNib方法注意要在在awakeFromNib中初始化子控件

    相关文章

      网友评论

          本文标题:UIView的封装

          本文链接:https://www.haomeiwen.com/subject/suhtcqtx.html