为什么主活动框宽度大于高度,即使处于纵向模式?



为什么当我测试我的应用程序时,IOS模拟器以纵向模式启动,所以在viewDidLoad 函数 self.view.frame.size.width 等于 1024,但按钮被点击调用的内部函数是 768?我没有更改设备方向。我还在下面粘贴了第一个和第二个函数的 self.view 描述。

以前

Printing description of self->_view:
<UIView: 0x8b20720; frame = (0 0; 1024 748); 
autoresize = RM+BM; layer = <CALayer: 0x8b291c0>>

<UIView: 0x8b1da70; frame = (0 0; 768 1024); transform = [0, -1, 1, 0, 0, 0]; 
autoresize =  RM+BM; layer = <CALayer: 0x8b20810>>

来自UIView文档:

框架

警告:如果转换属性不是标识转换,则此属性的值未定义,因此应忽略。

请改用 bounds 属性。

viewDidLoad内部设置self.view.transform属性,如下所示:

self.view.transform = CGAffineTransformIdentity;

看看这是否有帮助。它将 UIView(此处self.view)返回到其原始预期方向。

还应该注意的是,iOS模拟器对于方向错误是无望的。最好在设备上测试这些东西,因为模拟器没有加速度计或陀螺仪。

最新更新