ari*_*mus 5 iphone objective-c ios ios5
我今天开始玩iOS 5了,我看到XCode 4.2只允许我选择iOS 5作为Base SDK而不是iOS 4.
到目前为止,我已经覆盖了UINavigationBar中的drawRect:方法来自定义其外观,但iOS 5不再调用该方法.现在我要使用[UINavigationBar外观]来做它(我认为这要好得多).但是,外观方法仅适用于iOS 5,因此如果我使用它,我的应用程序在iOS 4上执行时会崩溃.我该怎么办?我是否必须在每个使用iOS 5方法的地方检查iOS版本的宏?
谢谢,
阿里尔
Mar*_*off 16
您的第一个问题的答案是:您必须使用iOS5(或最新的iOS SDK)作为基本SDK,但您在部署目标下设置了受支持的最低iOS版本.在那里你可以设置iOS4.0(或任何你想要的).
处理第二个问题的正确方法是测试功能,而不是版本.所以,像这样的东西可以说,你的application:didFinishLaunchingWithOptions:方法:
// iOS5-only to customize the nav bar appearance
if ([[UINavigationBar class] respondsToSelector:@selector(appearance)]) {
UIImage *img = [UIImage imageNamed: @"NavBarBackground.png"];
[[UINavigationBar appearance] setBackgroundImage:img forBarMetrics:UIBarMetricsDefault];
}
Run Code Online (Sandbox Code Playgroud)
然后,您将针对iOS5 SDK进行编译,因此appearance完全可以使用.但是当这个编译的代码在5之前的iOS版本上运行时,它会很好.
如前所述,您可以drawRect:按原样保留代码.
| 归档时间: |
|
| 查看次数: |
1980 次 |
| 最近记录: |