UISegmentedControl的tintColor没有反应

时间:2010-10-22 09:46:00

标签: iphone button uinavigationcontroller uinavigationbar uisegmentedcontrol

来吧!

我差不多要看一天了!

我想设置我的UISegmentedControl的色调,但它没有反应......

NSArray *segControlItems = [NSArray arrayWithObjects:
        @"L", 
        @"H",
        @"A",
        nil];
 UISegmentedControl *segControl = [[UISegmentedControl alloc] initWithItems:segControlItems];

 segControl.frame = CGRectMake(0, 0, 90, 30);
 segControl.segmentedControlStyle = UISegmentedControlStyleBar;
 segControl.momentary = YES;
 segControl.tintColor = [UIColor greenColor];


 [segControl addTarget:self action:@selector(segAction:) forControlEvents:UIControlEventValueChanged];

 UIBarButtonItem *segBarItem = [[UIBarButtonItem alloc] initWithCustomView:segControl];
 self.switchView.navigationItem.rightBarButtonItem = segBarItem;

 [segControl release];
 [segBarItem release];

苹果是否制作了一些像“makeUISegmentedControlsDontSetAnyTintColor”这样的属性? 请帮忙......

单个按钮有效:http://img257.imageshack.us/i/schermafbeelding2010102.png/

但是随着分段,它被搞砸了:http://img714.imageshack.us/i/schermafbeelding2010102.png/

2 个答案:

答案 0 :(得分:1)

我使用InterfaceBuilder时没有遇到任何问题。我有三个片段,一些带标签,一些带标签+图片,一切正常。

必须将您转换为无效的BarButtonItem。您可以尝试将分段控件添加为导航栏的子视图,而不是将其哄入按钮。

答案 1 :(得分:1)

这是一个非常古老的问题,但我今天遇到了这个问题(Xcode 7b5 / iOS 9)。在我的例子中,segmentedControl是navBar中的UIBarButtonItem。我可以通过等待下一个运行循环来设置tintColor,如下所示:

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] init]
(...additional setup...)

UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];    
self.navigationItem.rightBarButtonItem = segmentBarItem;

dispatch_async(dispatch_get_main_queue(), ^{
    segmentedControl.tintColor=[UIColor purpleColor];
});