我更喜欢禁用autoresizesSubviews和用于setFrame放置我的所有子视图.从iOS 6开始,事情似乎发生了很大变化.当我在一个视图上调用setFrame时viewDidLoad,没有任何效果.我试过了viewWillAppear; 一样.
setFrame调用可以使用willAnimateRotationToInterfaceOrientation,但最初不会像在iOS 5中那样调用.
有人可以澄清我希望从哪里布置我的观点?
Imr*_*nyi 19
我想你想要从UIViewController布局你的视图.您是否尝试在viewDidLayoutSubviews中执行布局任务:
- (void)viewDidLayoutSubviews
Run Code Online (Sandbox Code Playgroud)
根据Apple的文档:
在视图布局其子视图后,视图控制器可以覆盖此方法以进行更改.
由于您的视图本身没有布局其子视图(您不使用自动调整大小,自动布局或layoutSubViews :),您可以在此方法中执行布局任务.
然而,优雅的方法是使用自定义父UIView并执行其中的所有布局,覆盖UIView layoutSubViews:(除非您添加/删除视图dinamically).引用Apple关于"视图控制器如何参与视图布局过程"的文档:
理想情况下,视图本身执行所有必要的工作来重新定位自己,而不需要视图控制器完全参与该过程.但是,如果视图控制器动态添加和删除视图,则可能无法在Interface Builder中使用静态布局.在这种情况下,视图控制器是控制过程的好地方,因为视图本身通常仅具有场景中其他视图的有限图片.
| 归档时间: |
|
| 查看次数: |
8148 次 |
| 最近记录: |