2009-12-12 40 views
12

,通常示出了關於所選擇的按鈕一個UISegmentedControl沒有顯示當我設置整個導航欄爲黑色(self.navigationController.navigationBar.tintColor = [UIColor blackColor];)的色調。UISegmentedControl選定色調不顯示

這是一個錯誤或我錯過了什麼?

回答

60

爲了使色彩色顯示,有一對夫婦的要求:

segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 

它所需tintColor工作。

你還別說,你有tintColor設置爲[UIColor blackColor]。不幸的是,UISegmentedControl將始終顯示所選段的顏色較深,顏色較深,從不打火機。嘗試將您的tintColor設置爲[UIColor darkGrayColor],您應該能夠看到選定的片段更改顏色。

2

您是否嘗試過單獨設置分段控制的色調?

segmentedControl.tintColor = self.navigationController.navigationBar.tintColor; 
2

嘗試使用着色顏色[UIColor colorWithWhite:80.0/255.0 alpha:1.0]。 這會使黑色變黑,並允許所選段在選擇後變暗。您可以將白色組件設置爲合適的。

示例代碼:

UISegmentedControl *aSegmentedControl = [[UISegmentedControl alloc] initWithItems:arrItems]; 
aSegmentedControl.frame = CGRectMake(55, 382, 210, 32); 
aSegmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
aSegmentedControl.selectedSegmentIndex = 0; 
aSegmentedControl.tintColor = [UIColor colorWithWhite:80.0/255.0 alpha:1.0]; 
2

在iPhone 3.0,如果你想添加的分段控制在NavigationController,做的第一和改變tintcolorü沒有那之後。

+0

這是有益的,但對我來說,我設置分段控制到viewDidLoad中的navitem,然後立即設置着色顏色。我發現我必須將tintColor設置爲viewWillAppear,然後才能最終奏效。 – Jason 2010-09-23 17:54:36

1

改變分段的控制風格在屬性檢查器欄或Bezeled。就這樣。

2

如果您看到的導航欄上的不同色調的顏色,你也可能要使用瞬時財產上的uisegmentedcontrol。

segmentedControl.momentary=YES;

這會從控制高亮色調。