我有一个MKMapView,其中包含许多代表商店的注释。当用户点击注释时,我会呈现自定义注释视图。此视图包含一个收藏夹按钮,用于将商店添加到用户的收藏夹中。
如果用户按下此按钮,则会将其 backgroundImage 属性更改为另一个图像,表明其状态为收藏商店。
正在发生的问题是当用户点击图像时图像不会改变。它调用方法并将商店添加到其收藏夹,但它不会更改图像。如果用户取消标注,然后再次点击注释以查看标注,则该按钮将显示正确的背景图像。
此问题仅发生在iOS7设备上,但在iOS7模拟器和iOS8模拟器/设备上完美运行。
任何帮助都会很棒,谢谢。
答案 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