iOS:按钮背景图像在注释标注视图中未更改

iOS: Button backgroundImage not changing in Annotation Callout View

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

如果用户按下此按钮,它会将其 backgroundImage 属性 更改为另一张图片,表明其状态为最喜欢的商店。

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

此问题只发生在 iOS7 设备上,但在 iOS7 模拟器和 iOS8 simulator/device.

上可以完美运行

如有帮助将非常感谢。

您是否使用像这样的代码来更改图像-

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

并在按下 btn 时尝试这一行

[btn setNeedsDisplay];

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

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

然后在 buttonPress 事件上

设置

button.selected = !button.selected