为什么设置UISegmenteControl或UIBarButtonItem的tintColor会禁用按动画的按钮?

lad*_*kie 2 iphone cocoa-touch objective-c uisegmentedcontrol ios

我将UISegmentedControl和UIBarButtonItem放在UIToolBar中,代码如下:

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];
Run Code Online (Sandbox Code Playgroud)

使用此代码,UISegmentedControl和UIBarButtonItem是静态外观控件,触摸时不会更改其外观.

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

为什么会发生这种情况,以及我如何解决这个问题的想法?

Noa*_*oon 5

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