此问题适用于cocoa
和cocoa touch
。但我会为cocoa
写一个例子。
根据我的理解,我可以在一个周期内多次setNeedsLayout
到YES
,-layout
只会被调用一次。但是在-layout
方法中布置子视图还有其他好处吗?
说明/示例:每次调用自定义viewController
方法时,我都会在自定义NSView
(默认为redraw
)中布置子视图。我只在用户更改某些属性时调用redraw
方法,因此我真的想重新传出子视图。
答案 0 :(得分:1)
有许多外部环境不在您的直接控制之下,可能导致系统想要展示您的观点。例如,iOS上的设备旋转或传入调用,或OS X上的窗口调整大小。如果您在标准位置具有布局逻辑,那么您的代码无需任何额外工作即可满足这些要求,并且在内部状态发生变化的位置,您可以明确请求这样的布局。
要解决您的问题:不以标准方式进行布局是否有显着优势?你认为这会是性能问题吗?你有没有测量它是否实际上是性能问题?