我有一个应用程序,我只支持横向,它在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坐标是正确的。
有没有办法让我的应用更快地告诉我的应用?
答案 0 :(得分:0)
UIViewController中对旋转的支持在iOS 6中已更改。请查看本页的“处理视图旋转”部分:
请特别检查supportedInterfaceOrientations
和shouldAutorotate
方法。头文件中的注释非常有用。
此外,您在应用的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)