Ole*_*leg 33 storyboard nib ipad ios ios-simulator
我有iphone和ipad的通用应用程序,两个故事板,如果我在iphone模拟器上运行我的应用程序viewDidLoad在nib中的每个元素的每个帧是正确的.但是,如果我为ipad(模拟器)在框架中做它为零,但屏幕看起来正确.你能告诉我什么吗?谢谢.
fou*_*dry 108
这是一个非常类似的问题,ios setContentOffset无法在iPad上运行 ......我的回答与之相同:
"您不应该初始化与UI几何相关的内容viewDidLoad,因为此时未设置视图的几何图形,结果将无法预测.
... viewWillAppear:是做这些事情的正确位置,此时几何图形已设定,因此获取和设置与几何相关的属性是有意义的."
这也适用于获取与几何相关的属性.不要因为它在一种情况下而不是在另一种环境中表现正确而分散注意力......主要的一点是过早地设置/获取几何属性会产生不可预测的结果.
您的屏幕看起来正确,因为您在 viewWillAppear:/后看到了结果viewDidAppear:.
更新(ios6)
在ios6中使用autolayout时,在布局子视图之前不会设置帧.在这些条件下获取帧数据的正确位置在viewController方法中viewDidLayoutSubviews.
这被称为后 viewWillAppear:.但要小心 - 他们并不总是被召集在一起.例如,viewDidLayoutSubviews在旋转后调用,viewWillAppear:则不是.viewWillAppear:每次视图成为可见视图时调用*,viewDidLayoutSubviews不一定(仅当视图需要中继时).
(*除非应用程序背景并且正在成为前台应用程序,否则viewWillAppear:不会被调用)
我弄清楚它为什么会发生.我正在使用AutoLayout.当我在故事板中取消选中它时,框架是正确的.
| 归档时间: |
|
| 查看次数: |
30089 次 |
| 最近记录: |