在将我的 XCode 升级到 4.5 并在 iPad 6.0 模拟器上测试应用程序之后,这对我来说有点不确定。
详细信息- 当我在 iPad 6.0 模拟器上运行应用程序时,会出现很多视图/布局和方向问题。但是,当我在 iOS 6 iPad 设备上从 App Store 下载相同的应用程序时,我的应用程序运行良好。
我正在模拟器上对其进行测试,以支持我的 iOS 6 应用程序。发生这种情况的原因可能是什么?
谢谢
阿克
在将我的 XCode 升级到 4.5 并在 iPad 6.0 模拟器上测试应用程序之后,这对我来说有点不确定。
详细信息- 当我在 iPad 6.0 模拟器上运行应用程序时,会出现很多视图/布局和方向问题。但是,当我在 iOS 6 iPad 设备上从 App Store 下载相同的应用程序时,我的应用程序运行良好。
我正在模拟器上对其进行测试,以支持我的 iOS 6 应用程序。发生这种情况的原因可能是什么?
谢谢
阿克
看看我发布到这个其他类似问题的答案。
基本上,我也看到了你所看到的。
我链接到的答案有一个指向预发布 Apple 开发者论坛的链接(需要开发者帐户才能访问),其中讨论了这个问题(如果我正确阅读了您的描述)。如果您滚动到线程的底部,您会看到多个开发人员表示,和您一样,他们看到他们现有的应用程序(在 App Store 上)在 iOS 6 设备上运行没有问题。
只是当用 Xcode 4.5编译,然后在 iOS 6 设备(或模拟器)上运行时,他们看到了问题。由于您在商店中的应用程序是使用旧版本的 Xcode 编译的,因此当前拥有您的应用程序的 iOS 6 用户应该没问题。
但是,当您开始提交使用 Xcode 4.5 构建的新应用程序或更新时,您应该进行我在另一篇文章中列出的修复。
在以编程方式为子视图设置框架时,您可以使用 self.view.frame 而不是使用,
[[UIScreen Mainscreen] bounds]
这将返回当前设备的帧。例如,如果您使用 3.5 英寸视网膜屏幕,它将返回帧 (0 ,0, 320, 480),如果您使用 4 英寸视网膜,它将返回帧 (0 ,0, 320, 568)。所以很容易处理布局问题。
也许自动布局已激活!我听说这是一个尚未在模拟器上修复的错误女巫。等待更新,那么它应该适合你!:D
在阅读了 iOS 6 中的 UIOrientation 委托方法更改后,我进行了这些更改以解决问题-
1)使用此方法重置布局 -
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
2)如果这个代表无法获得设备的当前方向,我用它来获得它 -
UIInterfaceOrientation orientation= [[UIApplication sharedApplication] statusBarOrientation];
[self willAnimateRotationToInterfaceOrientation:orientation duration:1.0f];
这些东西解决了我的问题。
感谢您的帮助和回复。:)