UISegmentedContol:反转tintColor和backgroundColor

时间:2015-10-18 18:13:36

标签: ios swift uisegmentedcontrol tintcolor

我有UISegmentedControl,我在透明背景上添加了一些白色图像。

for (index,element) in ELEMENTS.enumerate() {
    segmentedControl.insertSegmentWithImage(element.logo, atIndex: index, animated: false)
}

现在未选择的段将背景颜色设置为segmentedControl.backgroundColor,并使用segmentedControl.tintColor对图像进行着色。选定的段被反转,背景设置为.tintColor,图像使用.backgroundColor着色。

这样可以正常工作,但我希望它是另一种方式:选定的段有一个用.tintColor着色的图像,背景颜色为.backgroundColor。

我知道我可以通过在代码中切换颜色来实现这一点,但我使用

let sharedApplication = UIApplication.sharedApplication()
sharedApplication.delegate?.window??.tintColor = newColor

在应用程序中更改应用程序中所有视图的tintColor,因此如果这会导致颜色在我的分段控件中按照我想要的方式更改,那就太好了。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

使用UIApplication.sharedApplication().delegate?.window??.tintColor设置应用程序的所有控件使用的全局色调颜色。

您可以使用UISegmentedControl.appearance().tintColor为应用中的所有分段控件设置自定义色调颜色。

您可以使用UISegmentedControl.tintColor为特定的分段控件设置自定义色调颜色。

要切换应用程序中所有分段控件的背景和色调颜色:

UISegmentedControl.appearance().tintColor = backgroundColor
UISegmentedControl.appearance().backgroundColor = tintColor