为分段控件中的选定分段自定义颜色

时间:2012-10-17 03:57:40

标签: objective-c xcode ios6 background-color uisegmentedcontrol

如何为分段控件中的选定分段自定义/更改颜色?我尝试使用UISegmentedControl selected segment color处提供的方法。它与iOS 5及以下版本完美配合,但不适用于iOS 6.任何帮助都表示赞赏。

基本上我希望将所选分段的颜色更改为某种明亮的颜色,以便选择/未选择的段清晰可见。

2 个答案:

答案 0 :(得分:4)

我们使用了siddarth提到的方法。

对分段控制器进行子类化并覆盖drawrect()方法。像这样:

- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];

for (int i=0; i<[self.subviews count]; i++)
{
    if ([[self.subviews objectAtIndex:i]isSelected] )
    {
        UIColor *tintcolor=[UIColor redColor];
        [[self.subviews objectAtIndex:i] setTintColor:tintcolor];
    } else {
        UIColor *tintcolor=[UIColor grayColor]; // default color
        [[self.subviews objectAtIndex:i] setTintColor:tintcolor];
    }
   }

}

答案 1 :(得分:3)

您可以覆盖该特定视图的子类,然后在屏幕上覆盖其drawRect()方法以获得其自定义外观。