如何更改 UISegmentedControl 中禁用段的色调

how to change the tint color of disable segment in UISegmentedControl

如何在分段控件中更改禁用段的色调。 我得到了排序 segmentedControl.subviews 的解决方案,下面是 swift 代码,请将其转换为 objective c.

@IBAction func indexChanged(sender: UISegmentedControl) {

let sortedViews = sender.subviews.sort( { [=10=].frame.origin.x < .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( { [=10=].frame.origin.x < .frame.origin.x } )
sortedViews[0].tintColor = UIColor.blueColor()

检查以下代码:

1.It 将绿色分配给选定的段。(segment-2)

2.Assigns 未选中但启用的蓝色(段 1 和 3)。

3.Assigns 禁用段的浅灰色。(段 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.
    }
}
}

结果将是:

如果您想了解更多信息,可以从此处获取:

UISegmentedControl selected segment color