【发布时间】:2013-12-24 10:20:16
【问题描述】:
我正在尝试为 UISegmentedControl 设置 tintColor 和选定的 tintColor。
到目前为止,除了第一次加载视图时一切正常,即使我调用我的方法来设置 tintColor(并执行),在第一次单击之前,tintColor 实际上并没有正确设置。
它确实出现了,好像 某事 正在发生,因为我试图将颜色设置为黑色并选择白色,并且默认颜色有点暗。
关于如何实际修改负载颜色的任何想法?
//some code
-(void)viewDidLoad
_segmentedControl.selectedSegmentIndex = 0;
[self segmentedControl:_segmentedControl];
//set color method
- (IBAction)segmentedControl:(BaseSegmentedControl *)sender
{
//change the color of every subview(segment) you have
for (int i = 0; i < [[sender subviews] count]; i++ )
{
if ([[sender.subviews objectAtIndex:i]isSelected] )
{
[[sender.subviews objectAtIndex:i] setTintColor:nil];
[[sender.subviews objectAtIndex:i] setTintColor:[UIColor whiteColor]];
}
else
{
[[sender.subviews objectAtIndex:i] setTintColor:nil];
[[sender.subviews objectAtIndex:i] setTintColor:[UIColor blackColor]];
}
}
谢谢
【问题讨论】:
-
旁注 - 挖掘标准控件的私有子视图结构是个坏主意。您的代码很容易在未来的 iOS 更新中中断。
-
这是我见过的为 ios6 后的段控制设置单独颜色的唯一方法
标签: ios objective-c ipad uisegmentedcontrol