iPad子视图似乎具有纵向方向

时间:2013-01-10 21:41:20

标签: ios objective-c ios5 ios6

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

- (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坐标是正确的。

有没有办法让我的应用更快地告诉我的应用?

3 个答案:

答案 0 :(得分:0)

UIViewController中对旋转的支持在iOS 6中已更改。请查看本页的“处理视图旋转”部分:

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

请特别检查supportedInterfaceOrientationsshouldAutorotate方法。头文件中的注释非常有用。

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

为您的视图设置autoresizingMask

yourview.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;

用它来获得高度和宽度

CGRectGetWidth(self.view.frame)
CGRectGetHeight(self.view.frame)