[英]How to change the background color of navigationbar in ios6 and ios7 both?
[英]What is the best way to manage support for both iOS6 and iOS7?
我一直有一个应用程序要求同时支持iOS6
和iOS7
。 但是由于iOS6
支持,我无法使用iOS7
某些功能。
例如,我必须做UIView
弹跳动画,在iOS6
我必须用CAKeyframeAnimation
或UIView
动画iOS7
,但是iOS7
具有UIKit dynamics
,可以为我提供UIDynamicAnimator
类,我可以使用它。
所以,我就应该总是使用旧的方法,如CAKeyframeAnimation
或UIView
动画,因为它同时支持iOS6
和iOS7
或检查都写iOS
版本?
无情地从iOS 6版本中剥离了需要ios7功能才能正常工作的内容,尤其是如果它们是诸如弹跳动画之类的精美内容时。
当对此有挑战时,告诉您的客户他们可以将80%的开发预算用于支持不断缩小的无关用户群,否则他们可以成为现实。 API兼容性只是6到7之间的一个令人头疼的问题。布局问题要困难得多。 今天编写的任何新应用都需要一个非常非常好的理由来支持6,尤其是8即将到来的时候。
我相信最好的方法是检查iOS版本并实现两种代码变体。
是的,也许这是很多工作,但是在大多数情况下,新iOS版本中提供的最新功能更加灵活,易于理解/集成。 在大多数情况下,他们也很支持。 Apple会更加谨慎地支持它们,并且弃用的可能性很小。
您可以使用Foundation
运行时变量NSFoundationVersionNumber
和NSFoundationVersionNumber_iOS_6_1
宏来划分代码:
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
// write iOS 7+ code here
}
else {
// write iOS 6.1- code here
}
请注意,有时最近发布的一些API可能还很原始。 在这种情况下,您应该单独决定是否真的需要立即进行迁移。
您可以使用class
API来检查类的可用性。
if ([UIPrintInteractionController class]) {
// Create an instance of the class and use it.
}
else {
// The print interaction controller is not available.
}
有关更多信息,请参见高级应用程序技巧下面的链接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.