我正在开发iOS应用程序。我的应用程序委托将我的视图控制器加载到窗口上并正确显示,除了一个警告:我的视图控制器上的视图在Y轴上的位置不够远,状态栏会截断我的顶视图。我改变了我的视图控制器的XIB文件以适应这个,所以现在我所有的视图都沿着Y轴开始20个像素。在初始加载时,一切看起来都很好。当我旋转时,我的视图比他们应该低20个像素(由于我的布局更改以适应第一次加载)。我想知道的是如何更好地处理视图控制器中的位置以处理状态栏高度。iOS视图控制器在旋转后移动
4
A
回答
1
我已经通过不直接/编程方式将视图渲染到窗口中来解决了这个问题。我所做的是创建一个RootViewController,它在两个方向上放置并正确对齐,并在RootViewController中具有所有其他视图。
发生这种情况的原因是应用程序的窗口始终是整个屏幕(包括顶部的状态栏)。如果您尝试填写窗口,则必须处理并补偿状态栏和其他镶边。如果您管理根视图内的所有视图,会更容易。
0
您的解决方案取决于您如何创建项目。
如果您在创建项目时使用了基于视图的应用程序模板,那么您将在MainWindow.xib中拥有您的视图控制器。假设您在该NIB中为您的视图控制器启用了状态栏属性(即选择灰色或黑色),则您的视图控制器应该在最初(启动时)以及旋转设备后正常工作。
如果使用的是基于窗的应用程序模板,当您创建的项目,你必须将下面的代码行添加到您的应用程序委托的didFinishLaunchingWithOptions:
myViewController.view.frame = window.screen.applicationFrame;
不知何故神奇地把事情成立正确。
相关问题
- 1. 旋转视图控制器
- 2. 如何限制视图控制器在ios 8中的旋转?
- 3. iPhone视图控制器视图向下移动20像素时旋转横向
- 4. 视图控制器上旋转
- 5. 多视图控制器和旋转
- 6. 父视图控制器不会在提供子视图控制器时旋转
- 7. 如何在导航控制器中自动旋转子视图
- 8. 嵌入导航控制器后,视图将不会旋转
- 9. 子视图控制器旋转,同时父视图控制器不
- 10. 如何处理ios 8中每个视图控制器中的自动旋转?
- 11. 不要自动旋转视图控制器,但显示UIAlertView旋转
- 12. 一些视图控制器专有的自动旋转
- 13. 多视图控制器不同的自动旋转要求
- 14. 视图控制器和自动布局旋转问题
- 15. 重新加载视图控制器后,自动旋转不起作用
- 16. TempData从视图移动到控制器
- 17. 移动到视图时出现问题IOS中的控制器
- 18. ios - 如何移动到特定的UI视图控制器
- 19. iOS首先自动旋转视图
- 20. iOS的“视图控制器”
- 21. 旋转放置和移动视图(UIView)
- 22. 旋转时移动的视图
- 23. css3变换:旋转移动视图
- 24. iOS自动点击并转到某个视图控制器
- 25. iphone无法在TabBar控制器中旋转视图
- 26. 如何在iPhone旋转时推送全屏视图控制器?
- 27. 在iPhone 6 Plus上分离视图控制器旋转
- 28. 旋转OpenStreetMap视图 - 如何在Android中旋转后在手指移动方向上滑动地图?
- 29. 登录Realm移动平台后的流行视图控制器
- 30. 容器视图控制器中UIPageViewController的旋转