我已经有了支持ios 4.3到ios 5的基础代码,现在我也想支持ios 6.0。目前的基本代码有modal views
,硬编码CGRect's
,并且每个视图的旋转都不同。所以我想知道我们是否可以通过相同的基本代码支持 ios 4.3 到 ios 6.0,只需调整一些更改,还是我们需要创建一个完整的新目标?
就像如果我想支持以前的版本,我们不能使用 ios 6.0 的自动布局,因为它会导致崩溃。
是的,我们可以通过将部署目标设置为 iOS 4.3 来做到这一点。但是,为什么您需要支持 iOS < 5.0,因为大约 85-90% 的设备都在 iOS 5.0+ 上。看到这个
此外,当您设置对 iOS 4.3 甚至 iOS 5.1.1 的支持时,您将不得不处理多种事情。例如,定向的方法,
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
iOS 6 不调用它。它被方法所取代,
- (NSUInteger)supportedInterfaceOrientations
- (BOOL)shouldAutorotate
您需要设备上的所有 iOS 版本,然后测试应用程序的各个方面。
使用 Xcode 4.5 使用一个代码库来构建 iOS 4.3 - 6.0 应用程序是完全有效的,但与往常一样,关键是在具有给定操作系统版本的真实 iDevice 上进行测试。
是的,它非常好,可以使用 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
,因为我只支持横向,即将我的应用程序限制为仅横向模式。
希望这会帮助你。
快乐编码:)