10

我想在 iOS 7 上更改 UISegmentedControl 的颜色。如果我在 Interface Builder 中更改色调颜色,则它的一部分以色调颜色绘制,部分以标准蓝色绘制。

图像应该更清楚地说明这一点。我选择了红色作为色调。

在此处输入图像描述

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

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

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

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

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

(感觉在第一次绘制控件时颜色属性没有正确应用,但我没有证据支持这一点。)

4

2 回答 2

8

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

[self.mySegmentedControl setTintColor:[UIColor clearColor]];
[self.mySegmentedControl setTintColor:self.view.tintColor];
于 2013-11-15T16:44:46.970 回答
0

如果您不想编写代码,可以在情节提要中完成另一种解决方法。

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

于 2014-02-17T13:10:11.950 回答