2012-02-22 98 views
2

我把一个UISegmentedControl和一的UIBarButtonItem的UIToolBar内用下面的代码:为什么设置UISegmenteControl或UIBarButtonItem的tintColor禁用按动按钮?

UISegmentedControl *prevNext = [[UISegmentedControl alloc] initWithItems:[[NSArray alloc] initWithObjects:@"Previous", @"Next", nil]]; 
prevNext.segmentedControlStyle = UISegmentedControlStyleBar; 
[prevNext addTarget:self action:@selector(prevNextPressed) forControlEvents:UIControlEventValueChanged]; 
prevNext.tintColor = [UIColor blackColor]; 
UIBarButtonItem *prevNextButton = [[UIBarButtonItem alloc] initWithCustomView:prevNext]; 

UIBarButtonItem *done = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(closeKeyboard)]; 
done.tintColor = [UIColor blackColor]; 

这段代码的UISegmentedControl和的UIBarButtonItem是触摸时不改变其外观静态看控制。

如果我注释掉设置tintColor属性的行,那么它们看起来不太好,但至少它们在视觉上对触摸做出了响应。

为什么会发生这种情况,以及我如何修复它的任何想法?

回答

5

触摸条形按钮或分段控件时的视觉效果会使其变暗。由于您的初始色调为黑色,因此按钮无法变暗,因此其外观不会改变。尝试另一种颜色,例如深灰色[UIColor colorWithWhite:0.2 alpha:1],也许。

+0

谢谢。我想保持tintColor黑色并以编程方式将文本的颜色从白色更改为灰色,以指示在按下不同的区域时会禁用段。你知道有什么好的方法来做到这一点吗? – ladookie 2012-02-22 21:59:56