此问题适用于cocoa
和cocoa touch
。但是我只写一个cocoa
的例子。
根据我的理解,我可以在一个循环中多次调用setNeedsLayout
到YES
,而-layout
只调用一次。但是在-layout
方法中布局子视图还有其他好处吗?
解释/示例:此刻我在自定义viewController
(有默认的NSView
)中布局我的子视图,每次我调用自定义redraw
方法。我只在用户改变某些属性时才调用redraw
方法所以我真的想重新布局子视图
有很多不受您直接控制的外部环境可能会导致系统想要布局您的视图。例如,iOS上的设备旋转或来电,或OS x上的窗口大小调整。如果你在标准的地方有你的布局逻辑,那么你的代码不需要任何额外的努力就能适应这些,在你的内部状态改变的地方,你可以显式地请求这样的布局。
把你的问题转过来:不以标准方式进行布局是否有显著的好处?你认为这会是一个性能问题吗?您是否测量过它,看看它是否真的是性能问题?