我已经拥有支持ios 4.3到ios 5的基本代码。现在我也想支持ios 6.0。
目前的基本代码为modal views
,硬编码CGRect's
,每个视图的轮播不同。所以我想知道我们是否可以使用相同的基本代码支持ios 4.3到ios 6.0,只需调整一些更改,或者我们是否需要创建一个完整的新目标?
如果我想支持以前的版本,我们就不能使用ios 6.0的自动布局,因为它会导致崩溃。
答案 0 :(得分:4)
是的,我们可以通过将部署目标设置为iOS 4.3来实现此目的。但是,为什么你需要支持iOS< 5.0大约85-90%的设备在iOS 5.0+上。见this
此外,当您设置对iOS 4.3甚至iOS 5.1.1的支持时,您将不得不处理多个事情。例如,Orientation方法,
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
不为iOS 6调用。它由方法
替换- (NSUInteger)supportedInterfaceOrientations
- (BOOL)shouldAutorotate
您需要在设备上使用所有iOS版本,然后测试应用的每个方面。
答案 1 :(得分:1)
使用Xcode 4.5,使用一个代码库来构建iOS 4.3 - 6.0应用程序是完全有效的,但一如既往,关键是使用给定的操作系统版本在真实的iDevices上进行测试。
答案 2 :(得分:1)
是的,完全没问题,可以使用xcode 4.5支持ios 4.3到ios 6.0。
对于ios 6中的方向,必须做一些解决方法,比如必须按照 @Mayur J的答案中的不同方式添加一些代码。
或者您所能做的就是为所需的控制器添加类别,例如UINavigationController
,UIPopoverViewController
,UIImagePickerViewController
等,以便在ios 6.0中返回支持的方向,如下所示
.h文件
#import <UIKit/UIKit.h>
@interface UIPopoverController (UIPopoverController_Orientation)
-(NSUInteger) supportedInterfaceOrientations;
@end
.m文件
#import "UIPopoverController+UIPopoverController_Orientation.h"
@implementation UIPopoverController (UIPopoverController_Orientation)
-(NSUInteger) supportedInterfaceOrientations {
return UIInterfaceOrientationMaskLandscape;
}
@end
我在这里使用UIInterfaceOrientationMaskLandscape
,因为我只支持横向定位,即将我的应用限制为仅横向模式。
希望这会对你有所帮助。
快乐编码:)