UISegmentedControl tintColor在iOS7中不起作用

时间:2014-02-06 16:22:29

标签: ios7 xcode5 uisegmentedcontrol

我有一个应用程序我正在尝试使用iOS7 SDK进行构建。不幸的是,iOS5上仍然有很多用户,所以我们需要支持它。

当我将NIB设置为在Xcode 4.6中打开时,我遇到的问题是在iOS7上设置UISegmentedControl样式。它只是忽略了tintColor。当我在Xcode 5中设置NIB文件打开时,设置tintColor工作正常,但是在尝试在iOS5上使用NIB时出错。分段控件位于工具栏控件中。下面是我正在使用的代码。

toolbar.barTintColor =  [UIColor redColor];
toolbar.tintColor = [UIColor whiteColor];
[toolbar setTranslucent:NO];
[toolbar setBarStyle:UIBarStyleBlack];
segmentedControl.tintColor = [UIColor whiteColor];

更新

我在其他一些NIB中看到的是每种配置的以下行为:

在4.6中打开,为5.0及更高版本构建 - 适用于所有版本,无法使用tintColor设置分段控制器样式

在5.0及更高版本的5.0版本中打开 - 适用于iOS5和iOS7,但在iOS6中显示“无法在捆绑中找到NIB”错误

在7.0及更高版本的5.0版本中打开 - 适用于iOS7和iOS6,但在iOS5上崩溃时出现“无法找到NIB”错误

但是,对于这个特定的NIB,“在5.0及更高版本中打开5.0版本”配置似乎可以正常运行而不会崩溃。所以,这解决了我当前的问题,但我仍然不明白为什么我的其他一些NIB不能使用相同的配置......

1 个答案:

答案 0 :(得分:0)

iOS 7中添加了barTintColor属性,因此在iOS 6或更早版本中使用它会导致崩溃。

更新您的代码以防止误用:

if ([toolbar respondsToSelector:@selector(setBarTintColor:)]) {
    toolbar.barTintColor = [UIColor redColor];
}