假设我想设计一个主从应用程序,Xcode6的主从项目模板适用于通用应用程序,并包括在iOS8中的UISplitViewController和splitViewController。我还想支持iOS7的应用。
一般来说
- 使用Xcode6 storyboard设计通用应用程序以支持iOS8和iOS7,最好的方法是什么?
- 使用不同的操作系统版本分开故事板更好吗?
- 我们应该遵循哪些最佳实践使应用程序与两个操作系统兼容?
假设我想设计一个主从应用程序,Xcode6的主从项目模板适用于通用应用程序,并包括在iOS8中的UISplitViewController和splitViewController。我还想支持iOS7的应用。
一般来说
UISplitViewController 。我已经成功地做到了这一点。确保它在iOS 7和8上正常工作并保持一致性需要付出很多努力。当涉及到执行各种新的自适应Segue时,你必须小心谨慎,因为这是iOS 7和8之间的巨大区别。例如,检测何时有弹出窗口将需要一些工作来处理两个不同的操作系统,处理取消Segues将需要一些特殊处理等。它需要大量测试。花时间测试iPhone 6 Plus-在横向时,它将在屏幕上显示主控和详细信息,但您可以控制它。”
“经过这样的经历,与为每个操作系统创建一个故事板以及为每种设备类型创建一个故事板相比,我宁愿实现单个故事板。”
你需要阅读SDK兼容性指南,了解如何检测API的可用性。如果你实现了一个在iOS 7上不存在的API,应用程序将会崩溃,因此你需要只在该函数存在于应用程序运行的操作系统中才运行该代码。例如,你可能想利用新的UIBlurEffect
API,但这在iOS 7上并不存在。了解什么是弃用意味着什么,知道iOS 8中发生了哪些变化将大有帮助。例如,旋转API已被弃用,取而代之的是大小类别特征集合,但这些在iOS 7上不可用,因此你需要继续使用已弃用的旋转API。
另外,今年还有一些WWDC视频,涉及新的自适应segue和通用storyboard。请注意,这些storyboard与iOS 7向后兼容,但某些尺寸类在iOS 7上不可用。有关更多信息,请参见此问题和我提供的答案。以前年份的WWDC视频也讨论了如何支持多个操作系统、渐进增强等内容。
当然,如果您有问题或问题,Stack Overflow是一个很好的资源。我在过去几个月中发布的许多问题都与此主题相关,例如如何修改UISplitViewController
行为、获得对两个操作系统的支持、使用单个storyboard和新的自适应segue等。您可以阅读这些内容,了解开发应用程序时可能遇到的情况。