Swift 显示附件按钮图像状态

Swift 显示附件按钮图像状态,swift,mapkit,mkannotationview,Swift,Mapkit,Mkannotationview,我在callout附件上有一个最喜欢的按钮,该按钮通过子类化UIButton(处理图像切换)在视觉上进行切换。当我移动地图时,我假设 视图被重新绘制时,切换将(通常情况下)返回到其原始未切换状态。 有人有过这种发展的经验吗?提前谢谢 您可以在地图上的注释方法的视图中处理此问题。假设您有子类MKAnnotation,并且正在使用可重用的MKAnnotationViews。在注释类中添加一个标志,以确定注释是否被选中并保持更新。然后,在注释的视图中方法 func mapView(_ mapView:

我在callout附件上有一个最喜欢的按钮,该按钮通过子类化UIButton(处理图像切换)在视觉上进行切换。当我移动地图时,我假设 视图被重新绘制时,切换将(通常情况下)返回到其原始未切换状态。 有人有过这种发展的经验吗?提前谢谢


您可以在地图上的
注释方法的
视图中处理此问题。假设您有子类
MKAnnotation
,并且正在使用可重用的
MKAnnotationView
s。在注释类中添加一个标志,以确定注释是否被选中并保持更新。然后,在注释的
视图中
方法

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
    let annotationView = yourMap.dequeueReusableAnnotationView(withIdentifier: "someIdentifier") as! YourCustomAnnotationClass
    if annotation.isSelected {
        // Setup your button here
    }
    return annotationView
}

基本上,如果您使用的是可重用注释视图,则必须将视图设置为类似于集合视图的工作方式。每次调用
viewFor annotation
时,此代码都会运行,因此如果您每次都不手动正确设置,或者不小心重复使用单元格,可能会发生一些奇怪的事情。

非常感谢这为我指明了正确的方向很高兴它有所帮助,请考虑投票或标记正确。我不能,因为我是一个新用户。对不起,伙计。