0

我有一个只支持横向的应用程序,它在 ios6 中运行良好,但在 ios5 中,一些子视图似乎具有纵向坐标和大小。我放了

- (BOOL)shouldAutorotateToInterfaceOrientation:   (UIInterfaceOrientation)interfaceOrientation {
   return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
      interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

我能想象到的任何地方,但这些视图似乎都停留在肖像上,我的宽度参数似乎是高度,反之亦然。

主视图似乎是正确的,但一些子视图似乎是错误的,尤其是那些从其他元素计算它们的位置和大小的视图,我害怕交换尺寸,因为这会破坏 ios6,如果我不想做任何条件代码可以避免。

有人见过这个吗?我阅读了其他一些问题,但它们似乎处理了轮换,但就我而言,我没有轮换。

基本上在我的导航控制器的 viewDidLoad 中

我的框架有:

2013-01-10 17:14:29.445 EdwardsSync[29070:c07] Width:: 768.000000
2013-01-10 17:14:29.445 EdwardsSync[29070:c07] Height:: 1024.000000

即使它出现在风景中。框架和边界也是如此。

如果我等到 viewDidAppear 坐标正确,这很有趣。

有没有办法更快地告诉我的应用程序方向?

4

3 回答 3

0

UIViewController 对旋转的支持在 iOS 6 中发生了变化。查看此页面的处理视图旋转部分:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

特别是检查supportedInterfaceOrientationsshouldAutorotate方法。头文件中的注释很有帮助。

另外,您在应用程序的 Info.plist 文件中定义了哪些方向?

于 2013-01-10T21:53:40.340 回答
0

还要进入 Interface Builder 中的 xib 并调整视图的尺寸。视图下的属性选择方向横向。它在模拟指标下。您还可以指定 1024 x 768 等大小指标。

如果需要,在构建设置中删除纵向视图。

于 2013-01-10T22:10:38.603 回答
0

为您的视图设置 autoresizingMask

yourview.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;

使用它来获取高度和宽度

CGRectGetWidth(self.view.frame)
CGRectGetHeight(self.view.frame)
于 2013-01-11T04:46:02.780 回答