关于layoutSubviews

这个是个小问题, 但是没注意好有时候能烦你一阵子, 在那闷头调试半天却各种诡异.
首先要注意这个方法被调用的时机

layoutSubviews在以下情况下会被调用:

  1. init初始化不会触发layoutSubviews
  2. addSubview会触发layoutSubviews
  3. 设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化
  4. 滚动一个UIScrollView会触发layoutSubviews
  5. 旋转Screen会触发父UIView上的layoutSubviews事件
  6. 改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件

当我们想偷懒, 使用cell自带的label和imageView时, 它们是只读属性, 不能被创建, 需要在初始化改变它们的颜色字体大小等属性, 然后在layoutSubviews里面去设定他们的尺寸.

但是有一个很神奇的事情, 平时写[super layoutsubviews]没啥事, 也应该写, 但是设定自带控件时如果写了, 就会发生各种诡异的事情, 要不就是直接崩溃, 要不就是布局产生混乱, 不写就没事, 这事我还在研究, 如果有答案欢迎留言指教

这次不是借鉴或致敬了, 这问题是我自己发现的, 发现这位作者也注意到了这点, 算是作为我的辅证http://blog.csdn.net/quanqinyang/article/details/22827815

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容