在iOS 7上未正确绘制UISegmentedControl色调颜色

时间:2013-10-08 04:40:31

标签: ios7 uisegmentedcontrol

我想在iOS 7上更改UISegmentedControl的颜色。如果我在界面生成器中更改了色调颜色,则部分颜色以色调颜色绘制,部件以标准蓝色绘制。

图像应该更清楚。我选择了红色作为浅色。

enter image description here

我在模拟器和设备上都有相同的行为。

如果我点击分段控件上的项目,它们会以请求的色调重新绘制。

如果我在viewDidLoad中指定色调颜色,则一切正常。

[segmentedControl setTintColor:[UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1.0]];

为什么Interface Builder颜色不起作用?

(感觉就像首次绘制控件时颜色属性没有正确应用,但我没有证据支持它。)

2 个答案:

答案 0 :(得分:8)

我有同样奇怪的行为。我能想到的唯一解决方法是将tintColor切换为其他内容,然后在viewDidLoad

中将其切换回来。
[self.mySegmentedControl setTintColor:[UIColor clearColor]];
[self.mySegmentedControl setTintColor:self.view.tintColor];

答案 1 :(得分:0)

如果您不想编写代码,可以在故事板中完成另一种解决方法。

将视图的tintColor保留为默认值。然后段控制将起作用。缺点是您必须为视图中的每个组件设置tintColor。