3

我一直想对我的 UISegmentedControl 段应用不同的颜色。这里的很多人一直在问如何在您按下某个部分时设置色调颜色。我想要做的是在应用程序的整个生命周期(或当视图出现在屏幕上时)设置每个段的色调颜色。

扫描这里的问题,不同的人指出,显然在 iOS 6 中你不能这样设置每个段的 tintColor:

- (void)viewDidLoad
{
    [super viewDidLoad];
    buttonNames = [NSArray arrayWithObjects:@"Red", @"Green", @"Blue", nil];
    colorControl = [[UISegmentedControl alloc] initWithItems:buttonNames];
    [[[colorControl subviews] objectAtIndex:0] setTintColor:[UIColor redColor]];
    [[[colorControl subviews] objectAtIndex:1] setTintColor:[UIColor greenColor]];
    [[[colorControl subviews] objectAtIndex:2] setTintColor:[UIColor blueColor]];
    colorControl.segmentedControlStyle = UISegmentedControlStyleBar;
    colorControl.momentary = YES;

    [colorControl addTarget:self action:@selector(colorSegmentSelected:) forControlEvents:UIControlEventValueChanged];

    [self.view addSubview:colorControl];

}

我在 XCode 中安装了 iOS 5.0 和 5.1 模拟器,并将我的项目设置为面向 5.0 和 5.1。在这两种情况下,此代码仍然无法正常工作。所有 3 段的 tintColor 均为灰色。

  1. 设置每个段的色调颜色的正确方法是什么(如果我在这里做错了,请纠正我。
  2. 如果此代码在 iOS 5 中确实有效,那么即使我以 5.0/5.1 为目标并使用适当的模拟器,它仍然无法正常工作怎么办?

感谢有关此主题的反馈/知识。谢谢!

4

0 回答 0