iOS - 反转高度/宽度与方向

时间:2012-08-17 20:02:09

标签: iphone ios ipad uiview uiviewcontroller

我正在创建一个自定义的容器视图控制器,但是当我想调整其中一个子视图控件的视图的框架时,它的大小对于屏幕的方向来说并不好。

为了更精确地在我的容器的init方法中,我保留了2个实例变量(2个viewcontrollers)。然后在我的容器的viewdidload方法中,我想调整一个viewcontroller视图的框架,并将2添加为子视图。

我的问题是我只在横向工作,当我问其中一个视图控制器的框架尺寸时,高度和宽度是相反的。我的宽度应为1024,高度为748,但宽度为748,高度为1024!

你知道为什么吗?

PS:在包括容器viewcontroller的所有viewcontrollers中,我将shouldautorotate方法设置为UIOrientationInterfaceIsLandscape()

非常感谢

1 个答案:

答案 0 :(得分:7)

我不确定您的确切设置,但这里有一些可能有用的一般信息:

如果视图控制器非常靠近视图层次结构的顶部(或者实际位于顶部),您会发现您获得了宽度和高度的“交换”效果。交换通常在frame上显示,但不在视图的bounds上显示。这是因为bounds实际上是应用于帧的一些变换 - 有时这些变换包括90度旋转(由于设备处于横向模式)。

请注意,检查frame属性的确切时间也很重要。如果您在加载视图后但在屏幕上显示之前检查属性,则可能会出现“错误”结果。

相关问题