2015-10-18 86 views
0

我有UISegmentedControl,我在透明背景上添加了一些白色圖像。未選擇UISegmentedContol:reverse tintColor and backgroundColor

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,所以這將是很好如果這會導致顏色以我想要的方式在我的分段控制中改變。

任何想法?

+0

你可以通過設置'UISegmentedControl.tintColor'改變色調的顏色只適用於本控制。 – mixel

+0

是的,但後來我必須每次都做sharedApplication.delegate?.window ??。tintColor = newColor和UISegmentedControl.tintColor = newColor,對嗎? – Jambaman

+0

不可以。您可以使用'sharedApplication.delegate?.window ?? tintColor = newColor'來僅設置全局色調顏色一次。每當您想爲此控件設置自定義色調顏色時,都使用「UISegmentedControl.tintColor」。你也可以嘗試使用'UISegmentedControl.appearance()。tintColor'爲應用程序中的所有分段控件設置自定義的色調顏色。 – mixel

回答

0

您可以使用UIApplication.sharedApplication().delegate?.window??.tintColor設置應用程序所有控件使用的全局色調顏色。

您可以使用UISegmentedControl.appearance().tintColor爲應用程序中的所有分段控件設置自定義色調顏色。

而且您可以使用UISegmentedControl.tintColor爲特定分段控件設置自定義色調顏色。

要切換背景和色調的顏色在您的應用程序的所有分段控制:

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