当我的主视图旋转时,我想重新排列子视图,所以在我的 ViewController 中,我覆盖
willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration
并在那里设置子视图的框架。这一切都很好,但是在子视图中我也覆盖了
layoutSubviews
所以他们正确地布局自己。但问题是这现在被调用了两次——大概一次是当我在 willAnimateRotationToInterfaceOrientation 中设置 Frame 时,一次是因为旋转。(如果我不设置 Frame 它会被调用一次。)
当然,布局框架是 ViewController 的责任,所以这似乎是一个设计缺陷——解决方案是什么,所以 layoutSubviews 只被调用一次?