2012-04-04 41 views
3

我使用UIAppearance爲我的iOS應用程序設置全局樣式。我正在設想一種淺灰色的風格。如何使UISegmentedControl的選定區段變黑?

[[UINavigationBar appearance] 
    setTintColor:[UIColor colorWithWhite:0.95 alpha 1.0] 
]; 

[[UISegmentedControl appearance] 
    setTintColor:[UIColor colorWithWhite:0.90 alpha 1.0] 
]; 

enter image description here

的問題是,所述UISegmentedControl的所選擇的段(烏諾)不大於正常段(DOS)暗得多。正常的分段已經處於正確的黑暗狀態,但我只想將選定的分段變暗,以便人們可以分辨兩者之間的差異。變暗色調會同時使兩者變暗,因此無法使用。

回答

1

最簡單的方法是遍歷分段控制器的子視圖列表,並查看選擇哪個子視圖,找到所需的子視圖時,需要將其顏色調暗。

for (int x= 0; x <[aSegementedController.subviews count]; x++) 
{ 
    UIBarButtonItem *subview = [aSegementedController.subviews objectAtIndex:x]; 
    if ([subview isSelected]) 
    {    

     [subview setTintColor:darkerColor]; 
    } 
} 

然而,這與UIAppearance不起作用,我不相信它可以在該級別定製。

+0

我分類了UISegmentedControl。從這個小類中,我如何能夠聽取更改事件並執行示例代碼?我認爲UISegmentedControl處理自己的樣式會更清潔,而不是UIViewController監聽更改,然後告訴UISegmentedControl更改其色調。 – JoJo 2012-04-04 05:18:42

+0

沒關係。我只是意識到,爲了理解事件,它違背了模型 - 視圖 - 控制器範例。 – JoJo 2012-04-04 05:31:41

相關問題