uisegedcontrol tintcolor在ios7中不起作用



我有一个正在准备使用ios7 SDK构建的应用程序。不幸的是,我们在iOS5上仍然有很多用户,因此我们需要支持它。

我遇到的问题是在Xcode 4.6中设置了笔尖时在ios7上进行uisegringedcontrol的样式。它只是忽略了Tintcolor。当我将笔尖文件设置为在Xcode 5中打开时,设置TintColor的工作正常,但是在尝试在ios5上使用NIB时会遇到错误。分段控件在工具栏控件中。以下是我正在使用的代码。

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

更新:

我看到的其他一些笔尖是每种配置的以下行为:

在4.6中打开,为5.0和更高版本 - 使用TintColor

为所有版本的所有版本使用

在5.0构建5.0及以后的中打开,适用于ios5和ios7,但显示"无法在捆绑中找到Nib"的ios6

的错误

在5.0构建中为7.0和更高版本 - 适用于ios7和ios6,但在ios5上崩溃,带有"无法找到NIB"错误

但是,对于此特定的笔尖,"在5.0及以后的5.0构建中打开"配置似乎在没有崩溃的情况下工作。因此,这解决了我当前的问题,但是我仍然不明白为什么我的其他一些笔尖无法使用相同的配置...

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

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

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

最新更新