Mic*_*elB 6 objective-c storyboard ios ios-universal-app size-classes
我在Xcode 6.1上启动了一个新的单一视图项目,
转到我的目标并将Device Family设置为Universal和Deployment目标为7.1
在故事板中,我在Size类中放置了一个红色标签,Regular Width | Any Height
在Size Class中放置了一个蓝色标签Compact Width | Any Height
根据文档,我在ipad上运行时会看到一个红色标签,在iphone上运行时会看到蓝色,到目前为止,这在模拟器和实际设备上均可正常工作.
现在我回到目标并将Device Family设置为IPad,再次运行应用程序:
模拟器上的IPad 2(7.1) - 红色标签
IPad 2(7.1)(真实设备) - 蓝色标签?!?!?
IPad 2(8.1)(真实设备) - 红色标签
同样适用于IPad Air/IPad mini以及IOS 7.1的所有其他IPad我都遇到过
基本上我在通用故事板上看到这一点,当在ios 7.1中为IPad设置设备系列时,故事板被认为是紧凑的尺寸.我必须与IOS 7.1兼容,我的应用程序将首先仅针对IPad发布.有没有人知道如何解决它?
根据Apple文档:对于支持早于iOS 8的iOS版本的应用程序,大多数大小类都是向后兼容的.大小类只要向后兼容即可
该应用程序使用Xcode版本6或更高版本构建
该应用程序的部署目标早于iOS 8
大小类在storyboard或xib中指定
高度分量的值不紧凑
所有这些都适用于我的例子.
模拟器对比 设备?\n我已经能够重现您在模拟器中报告的问题。
\n\n我认为您假设您的模拟器工作正常,因为它会产生您期望的输出,而 iPad 显示“错误”布局。然而,值得考虑的是 iPad 是否确实显示了您的配置的标准输出,即使该输出代表了一个错误。Xcode 中的 Storyboard 预览显示了正确的配置行为,但在 iPad 2 (7.1) 的模拟器中不正确,甚至在运行 iOS 7.1 时对于其他 iPad 型号也是如此。在模拟器中可以看到 iOS 8.x\xc2\xa0 的预期行为。因此,这不是模拟器与设备的问题。我怀疑您在模拟器中看到不同结果的原因只是因为您没有进行干净的构建,因为一些关键更改导致了这种情况,所以它仍然使用旧的 XIB,因为它们的缓存时间比应有的时间长有时。
\n\n问题原因?\n您将项目的设备系列设置为仅针对 iPad,但在故事板中包含以下尺寸类别Compact Width | Any Height,iPad 绝不应使用该尺寸类别。这可能是触发此问题的配置的一个方面。也就是说,它仍然不应该发生。Xcode 6.1 都会出现此问题,并且在当前的 6.2 beta 中也没有什么不同。
您当前配置的某个特定方面可能会触发此问题。特别是,自动布局和设备目标会以一些有记录但通常是开发人员意想不到的方式受到启动屏幕的影响。(例如,使用故事板作为启动屏幕将默默地使您的应用程序普遍可用,即使您已指定它应该在您的目标中仅适用于 iPhone。)还有其他情况(请参阅此 Stack Overflow 问题和答案))需要迁移将映像启动到不同的配置已经解决了类似的问题。所以这值得尝试。
\n| 归档时间: |
|
| 查看次数: |
1030 次 |
| 最近记录: |