如何使UISegmentedControl的选定片段变暗?

时间:2012-04-04 04:21:58

标签: iphone ios cocoa-touch

我正在使用UIAppearance为我的iOS应用设置全局样式。我想象的是浅灰色的风格。

[[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的选定片段(Uno)并不比普通片段(Dos)暗得多。正常段已经处于正确的黑暗中,但我想只对所选段进行变暗,因此人们可以分辨出两者之间的区别。变暗的色调会同时使两者变暗,因此无效。

1 个答案:

答案 0 :(得分:1)

最简单的方法是迭代分段控制器的子视图列表并查看选择了哪一个,当您找到选定的子视图时,您需要将其色调颜色调暗。

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

        [subview setTintColor:darkerColor];
    }
}

然而,这不适用于UIAppearance,我不认为它可以在该级别进行自定义。