1

我已经有了支持ios 4.3到ios 5的基础代码,现在我也想支持ios 6.0。目前的基本代码有modal views,硬编码CGRect's,并且每个视图的旋转都不同。所以我想知道我们是否可以通过相同的基本代码支持 ios 4.3 到 ios 6.0,只需调整一些更改,还是我们需要创建一个完整的新目标?

就像如果我想支持以前的版本,我们不能使用 ios 6.0 的自动布局,因为它会导致崩溃。

4

3 回答 3

4

是的,我们可以通过将部署目标设置为 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 版本,然后测试应用程序的各个方面。

于 2012-10-08T07:22:46.653 回答
1

使用 Xcode 4.5 使用一个代码库来构建 iOS 4.3 - 6.0 应用程序是完全有效的,但与往常一样,关键是在具有给定操作系统版本的真实 iDevice 上进行测试。

于 2012-10-08T07:16:07.733 回答
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,因为我只支持横向,即将我的应用程序限制为仅横向模式。

希望这会帮助你。

快乐编码:)

于 2012-10-08T07:33:59.473 回答