【发布时间】:2014-01-04 12:23:44
【问题描述】:
我正在将我的应用升级到 iOS7。但是我也想保留 iOS6 界面。除了导航栏外,它运行良好。在 iOS7 中,它们看起来很棒(只是默认颜色的 translucent 属性为 YES。在 iOS6 中,导航栏显示为默认的蓝色条,我希望它们是黑色半透明的。
我要做的是检查 iOS 的版本,然后执行一些代码。在调试器中,我在 vComp 变量中看到了正确的版本,但颜色没有改变。不要介意 redColor 属性,这只是为了测试。在这两种方式中,我都会看到默认颜色。
这是我的代码:
- (void) fixNavBarColor:(UINavigationBar*)bar {
NSArray *vComp = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
if ([[vComp objectAtIndex:0] intValue] >= 7) {
bar.barTintColor = [UIColor redColor];
bar.translucent = NO;
}
else {
bar.tintColor = [UIColor redColor];
bar.opaque = YES;
}
}
没有错误或警告。 有什么想法吗?
【问题讨论】:
-
你的问题是ios6不能把bar改成黑色半透明吗?
-
首先我会摆脱
NSArray *vComp = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];并将[[vComp objectAtIndex:0] intValue] >= 7替换为[[[UIDevice currentDevice] systemVersion] >= 7这[[[UIDevice currentDevice] systemVersion] intValue]将返回值为6或7或等不需要做毫无意义的componentsSeparatedByString:电话 -
谢谢,下面的解决方案效果很好。所以,解决了。
标签: ios iphone objective-c uinavigationbar