这个是个小问题, 但是没注意好有时候能烦你一阵子, 在那闷头调试半天却各种诡异.
首先要注意这个方法被调用的时机
layoutSubviews在以下情况下会被调用:
- init初始化不会触发layoutSubviews
- addSubview会触发layoutSubviews
- 设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化
- 滚动一个UIScrollView会触发layoutSubviews
- 旋转Screen会触发父UIView上的layoutSubviews事件
- 改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件
当我们想偷懒, 使用cell自带的label和imageView时, 它们是只读属性, 不能被创建, 需要在初始化改变它们的颜色字体大小等属性, 然后在layoutSubviews里面去设定他们的尺寸.
但是有一个很神奇的事情, 平时写[super layoutsubviews]没啥事, 也应该写, 但是设定自带控件时如果写了, 就会发生各种诡异的事情, 要不就是直接崩溃, 要不就是布局产生混乱, 不写就没事, 这事我还在研究, 如果有答案欢迎留言指教
这次不是借鉴或致敬了, 这问题是我自己发现的, 发现这位作者也注意到了这点, 算是作为我的辅证http://blog.csdn.net/quanqinyang/article/details/22827815
网友评论