Pau*_*Goh 10 xcode objective-c ios
将项目升级到iOS 6之后,我意识到自动布局仅在viewDidAppear中有效,并且我的大多数代码都希望视图的框架在viewDidLoad中可用.这种限制使我真正好的自动布局功能对我来说几乎无用.有什么建议可以帮助我使用自动布局吗?
例如,有时开发人员需要根据自动布局选择放置特定子视图的位置来调整子视图的信息.开发人员无法确定子视图的最终位置,直到用户已经看到它为止.用户不应该看到这些信息调整,而是一次性呈现最终结果.
更具体地说:如果我想根据自动布局放置视图的位置更改视图中的图像,该怎么办?我无法查询该位置,然后在用户看不到这种情况的情况下更改图像.
作为一般规则,永远不应依赖视图框架/边界viewDidLoad.
viewDidLoad只有通过编程方式或通过.nib/.xib文件创建视图后,才会调用该方法.此时,视图尚未设置,仅加载到内存中.
你应该总是做你的视图布局在任一viewWillAppear或viewDidAppear因为一旦视图已经为准备演讲调用这些方法.
作为测试,如果您只是NSLog(@"frame: %@", NSStringFromCGRect(self.view.frame));在您的方法viewDidLoad和viewWillAppear方法中,您将看到只有后一种方法返回与视图周围的任何其他元素相关的实际视图大小(例如UINavigationBar和UITabBar).
| 归档时间: |
|
| 查看次数: |
2670 次 |
| 最近记录: |