iOS:按钮backgroundImage在注释标注视图中不会更改

时间:2015-05-25 01:47:33

标签: ios uibutton mkmapview calloutview

我有一个MKMapView,其中包含许多代表商店的注释。当用户点击注释时,我会呈现自定义注释视图。此视图包含一个收藏夹按钮,用于将商店添加到用户的收藏夹中。

如果用户按下此按钮,则会将其 backgroundImage 属性更改为另一个图像,表明其状态为收藏商店。

正在发生的问题是当用户点击图像时图像不会改变。它调用方法并将商店添加到其收藏夹,但它不会更改图像。如果用户取消标注,然后再次点击注释以查看标注,则该按钮将显示正确的背景图像。

此问题仅发生在iOS7设备上,但在iOS7模拟器和iOS8模拟器/设备上完美运行。

任何帮助都会很棒,谢谢。

2 个答案:

答案 0 :(得分:0)

你是否正在使用像这样的代码来改变图像 -

     [btn setBackgroundImage:img1 forState:UIControlStateNormal];
    [btn setBackgroundImage:img1 forState:UIControlStateSelected];
    [btn setBackgroundImage:img1 forState:UIControlStateHighlighted];

并在btnpressed

时尝试这一行

[btn setNeedsDisplay];

答案 1 :(得分:0)

首先为按钮的两种状态设置2个不同的图像。

[btn setBackgroundImage:img1 forState:UIControlStateNormal];
[btn setBackgroundImage:img2 forState:UIControlStateSelected];

然后在buttonPress事件

设置

button.selected = !button.selected