2016-04-07 43 views
-1

如何更改UISegmentedControl中禁用段的色調顏色。 我得到了對segmentedControl.subviews進行排序的解決方案,下面是swift代碼,請將其轉換爲目標c。如何更改UISegmentedControl中禁用段的色調顏色

@IBAction func indexChanged(sender: UISegmentedControl) { 

let sortedViews = sender.subviews.sort({ $0.frame.origin.x < $1.frame.origin.x }) 

for (index, view) in sortedViews.enumerate() { 
    if index == sender.selectedSegmentIndex { 
     view.tintColor = UIColor.blueColor() 
    } else { 
     view.tintColor = UIColor.lightGrayColor() 
    } 
} 

} 

let sortedViews = segmentedControlOutletVariable.subviews.sort({ $0.frame.origin.x < $1.frame.origin.x }) 
sortedViews[0].tintColor = UIColor.blueColor() 

回答

1

檢查以下代碼:

1.It分配綠色到選擇的段(段2)

2.Assigns藍色變爲未選擇,但這些啓用(段-1和3)。 。

3.Assigns LIGHTGRAY顏色片段,其禁用(段4)

-(IBAction)segmentedTapped:(UISegmentedControl*)sender{ 

for(int i=0;i<[sender.subviews count];i++) 
{ 
    if ([[sender.subviews objectAtIndex:i]isEnabled]) 
    { 


     if([[sender.subviews objectAtIndex:i]isSelected]) 
     { 
      UIColor *tintcolor=[UIColor greenColor]; 
      [[sender.subviews objectAtIndex:i] setTintColor:tintcolor]; //sets green color for selected segment which is enabled 
     } 
     else 
     { 
      [[sender.subviews objectAtIndex:i] setTintColor:[UIColor blueColor]]; //sets blue colour for remaining segments which are enabled but not selected. 

     } 
    } 
    else 
    { 
     [[sender.subviews objectAtIndex:i] setTintColor:[UIColor lightGrayColor]];//sets ight gray for disabled segment. 
    } 
} 
} 

結果將是: enter image description here

,如果你願意,你可以從這裏得到更多的信息:

UISegmentedControl selected segment color

+0

其實我想改變禁用段的色調顏色..請幫忙 –

+0

如何排序segmentcontrol子視圖數組索引? –

+0

@jasonfrank:我的代碼將淺灰色分配給禁用的段。你可以在那裏設置你想要的顏色。 –

相關問題