ios - UIButton突出显示设置行为很奇怪

时间:2012-05-22 17:16:11

标签: ios uibutton highlight

我突出显示的图片显示不同。 这是我的情况。

[button setImage:"normal image" forState:UIControlStateNormal];
[button setImage:"hover image" forState:UIControlStateHighlighted];
[button setImage:"hover image" forState:UIControlStateSelected];

- (IBAction)buttonTouched:(id)sender {
    UIButton *selectButton = sender;


    if (_currentSelectedTabButton.tag == selectButton.tag) {
        //TODO refresh view controller
        return ;
    }

    _currentSelectedTabButton.selected = NO;
    selectButton.selected = YES;

    _currentSelectedTabButton = selectButton;
}
  1. 触摸按钮。
  2. 按钮显示突出显示的图像。 (正确的图像)
  3. 按钮的状态设置为“已选择”
  4. 触摸按钮。
  5. 按钮显示不同的突出显示图像。
  6. 当按钮处于选中状态时,突出显示的图像显示不正确。 有什么想法吗?

2 个答案:

答案 0 :(得分:2)

这是因为你要设置setImage:forControllState:UIControlStatesSelected和setHighlighted图像,当你第一次按下按钮时,它的状态被取消选中,显示高亮显示的图像,再次按下按钮,它显示所选图像,因为现在按钮处于选中状态。 (简而言之,突出显示的图像仅在按钮的非选定状态下工作)。

答案 1 :(得分:0)

UIControlStateSelected | UIControlStateHighlighted是一个独立于UIControlStateHighLighed

的状态