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

时间:2014-01-07 13:10:41

标签: ios objective-c

为什么当我测试我的应用程序时,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>>

2 个答案:

答案 0 :(得分:1)

来自UIView docs

  

<强>帧

     

警告:如果transform属性不是identity变换,则此属性的值是未定义的,因此应该被忽略。

改为使用bounds属性。

答案 1 :(得分:0)

viewDidLoad内设置.transform的{​​{1}}属性,如下所示:

self.view

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

还应该注意,iOS模拟器绝望用于定位错误。最好在设备上测试这些东西,因为模拟器没有加速度计或陀螺仪。