2013-01-10 64 views
0

我有一个应用程序,我只支持横向,它在ios6中很好用,但在ios5中有些子视图显示有portait坐标和大小。我把iPad子视图似乎有纵向

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

无处不在我能想象,但这些意见似乎卡住了portait,我的宽度参数似乎是高度,反之亦然。

出现的主视图看起来是正确的,但某些子视图似乎错了,尤其是那些从其他元素计算它们的位置和大小的人,我恐怕要交换尺寸,因为这会破坏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的坐标是正确的。

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

+0

你看着在viewWillAppear中的框架和范围? – kallikak

+0

是的,他们在那里是正确的,但那不是理想的。 –

回答

0

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

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

+0

这个工程在ios6以及我一直在做的很好,我的问题似乎是在ios5中。 –

+0

确保autoresize子视图不被选中。这可能是搞砸了。 – ApolloSoftware

+0

也使用自动布局功能只是特定于iOS 6.0的功能,如果它在5.0中检查,您将有错误。 – ApolloSoftware

0

在UIViewController中旋转的支持的iOS 6.查看改变在本页面的处理视图旋转部分:

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

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

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

+0

我不旋转。 –

+0

我不明白 - 问题视图是以纵向显示吗?或者你的意思只是维度交换? – kallikak

+0

看起来好像宽度和高度被换成了一些子视图。 –

0

设置autoresizingMask对你的看法

yourview.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; 

利用这个得到高度和宽度

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