为什么当我测试我的应用程序时,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模拟器对于方向错误是无望的。最好在设备上测试这些东西,因为模拟器没有加速度计或陀螺仪。