UIButton突出显示状态图像

Fre*_*ins 0 iphone cocoa-touch objective-c uibutton

UIButton和我一起设置:

UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];

UIImage *imageNormal = [UIImage imageNamed:@"normal.png"];
UIImage *imageNormalHover = [UIImage imageNamed:@"normalHover.png"];
UIImage *imageSelected = [UIImage imageNamed:@"selected.png"];
UIImage *imageSelectedHover = [UIImage imageNamed:@"selectedHover.png"];

[myButton setImage:imageNormal forState:UIControlStateNormal];
[myButton setImage:imageSelected forState:UIControlStateSelected];

if (boolVar) {
    [myButton setSelected:YES];
    [myButton setImage:imageSelectedHover forState:UIControlStateHighlighted];
} else {
    [myButton setImage:imageNormalHover forState:UIControlStateHighlighted];
}
Run Code Online (Sandbox Code Playgroud)

问题是当状态正常并且我尝试按下按钮我正确看到图像normalHover.png但是当状态被选中时我试着按下按钮我看到的仍然normalHover.png不是selectedHover.png.似乎UIButton我无法更改突出显示的图像.你怎么解决?

Ali*_*are 5

您需要为UIControlStateSelected | UIControlStateHighlighted组合状态设置图像:

[myButton setImage:imageSelectedHover forState:(UIControlStateSelected | UIControlStateHighlighted)];
Run Code Online (Sandbox Code Playgroud)

因为当选择按钮时两个状态都打开,并且通过点击它来点亮它.