赞
踩
View的布局无非就是其在屏幕上的大小与位置,其中UIView有三个重要的布局属性:frame,bounds,center。UIView提供了用来通知系统某个view布局发生变化的方法,也提供了在view布局重新计算后调用的可重写的方法。
1.layoutSubviews()方法
当一个视图“认为”应该重新布局自己的子控件时,它便会自动调用自己的layoutSubviews方法,在该方法中“刷新”子控件的布局。而且这个方法不需要我们手动去调用,而是系统在以下情况自动调用:
addSubview
会触发子视图的layoutSubviews
UIScrollView
和它的父view
上被调用)view
的位置需要被重新计算,继而会调用layoutSubviews
.当然也可以直接触发layoutSubviews
的方法。2.layouifNeeded()方法
当你“马上”,“立刻”需要刷新布局的时候调用,这时候会立刻调用layoutSubviews()方法,将打了“标记”的视图立刻更新。但是这方法会很消耗性能效率
3.setNeedsLayout()方法
使用setNeedsLayout()方法,不会立刻更新布局,而是在下一个run loop中将带有“标记”的视图更新,此时调用layoutSubviews()方法,这有利于优化性能,并且这个时间间隔并不会长到影响用户体验。
参考:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。