Dou*_*ith 5 objective-c uiviewcontroller ios autoresizingmask autolayout
非常简单的问题,但我问,因为似乎有很多相互矛盾的观点,我一直无法找到明确的答案,更不用说现代的答案了.
我使用自动布局将99%的用户操作从纵向更改为横向,反之亦然UIViewController.效果很好.但有时候,由于某种原因,我不得不依赖帧.
我怎么能最好地处理这个?
你有willAnimateRotationToInterfaceOrientation,检查状态栏willRotateToInterfaceOrientation的NSNotification方法,我相信还有其他一些.
如果我想在用户旋转时更改视图的位置,我应该在哪个方法中更改框架?最好是用简单的方法来做,setFrame:还是应该使用自动修复蒙版?
从iOS6开始,你不应该使用willRotateToInterfaceOrientation:和didRotateFromInterfaceOrientation:.这些仅在最前面呈现的视图控制器上调用,而不会在其他控件上调用.这意味着如果您有推送的视图控制器或呈现的视图控制器,则所有其他控件将无法正确布局.
相反,您应该始终使用viewWillLayout和viewDidLayout处理旋转.它们都被称为动画块,所以你做的任何可动画的动画都会被动画化.
对于定位视图,您可以自己设置框架,也可以使用自动布局约束并调整约束viewDidLayout.如果您进入自动布局路线,请永远不要删除和添加约束.尽可能使用相同的约束,只需调整它们的constant值.
| 归档时间: |
|
| 查看次数: |
5134 次 |
| 最近记录: |