【问题标题】:iOS: Button backgroundImage not changing in Annotation Callout ViewiOS:按钮背景图像在注释标注视图中没有改变
【发布时间】:2015-05-25 01:47:32
【问题描述】:

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

如果用户按下此按钮,它会将其 backgroundImage 属性更改为另一个图像,以指示其作为收藏夹的状态。

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

此问题仅出现在 iOS7 设备上,但在 iOS7 模拟器和 iOS8 模拟器/设备上可以完美运行。

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

【问题讨论】:

    标签: ios uibutton mkmapview calloutview


    【解决方案1】:

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

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

    然后在 buttonPress 事件中

    设置

    button.selected = !button.selected
    

    【讨论】:

      【解决方案2】:

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

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

      并在按下 btn 时尝试这一行

      [btn setNeedsDisplay];

      【讨论】:

      • 当你找到像@rahul sir 给出的好的答案时,你可以投票给答案.....;)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-22
      相关资源
      最近更新 更多