微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

objective-c – 视图控制器处于横向模式,但是我从纵向模式获取帧?

我有一个带有表视图的设置视图控制器.表视图应该将其帧设置为视图控制器的帧.我的应用程序仅支持横向模式,因此这是我一直在的方向.

但是,当设置视图控制器加载时,表视图具有视图控制器的纵向模式框架,即使它处于横向状态(360×480时应为480×360).

此外,当我检查设备是否认为它处于纵向模式时,它返回true.

是什么导致了这个问题,我该如何解决

解决方法

当你调用[UIView init]时,它将认为你的设备在纵向模式下的屏幕尺寸(同样适用于iPad,但尺寸更大).
在[UIViewController viewDidLoad]内部,self.view也将认为此大小.

屏幕旋转仅对层次结构中的顶视图(控制器)进行,旋转消息通过支持此行为的容器-VC转发(例如UINavigationController,UITabBarController).

如果希望正确调整视图大小,请使用[UIView initWithFrame:self.view.bounds]创建视图. Insinde UIViewController您只有机会覆盖loadView方法以在调用viewDidLoad之前设置帧(或者您可以使用不同的XIB用于格局).您还可以通过在viewDidLoad中首先设置其框架来硬编码视图的大小

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐