如何从 MKAnnotationView 标注中排除用户位置?
How to exclude user location from MKAnnotationView callout?
我有以下代码:
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
if view.annotation is MKUserLocation {
view.canShowCallout = false
} else {
self.locationInfoContainerView.isHidden = false
}
}
我希望这会执行以下操作:当我点击与用户位置不同的注释时显示容器视图。
这段代码的作用是在我点击 USERLOCATION 时显示容器视图,而不是在我单击地图上其他点的注释时显示容器视图(因此它的作用恰恰相反),我尝试像这样反转代码:
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
if view.annotation is MKUserLocation {
self.locationInfoContainerView.isHidden = false
} else {
view.canShowCallout = false
}
}
但这会产生相同的结果。有人可以澄清一下并帮助我编程所需的行为吗? I.E:当点击地图注释不同于地图上的用户位置时显示容器视图。
希望这已经足够清楚了,谢谢大家。
在 viewForAnnotation
中将标题设置为空
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
if let userAnnotation = annotation as? MKUserLocation {
userAnnotation.title = ""
return nil
}
}
解决方案是:
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
if annotation is MKUserLocation {
return nil
}
:
:
我有以下代码:
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
if view.annotation is MKUserLocation {
view.canShowCallout = false
} else {
self.locationInfoContainerView.isHidden = false
}
}
我希望这会执行以下操作:当我点击与用户位置不同的注释时显示容器视图。
这段代码的作用是在我点击 USERLOCATION 时显示容器视图,而不是在我单击地图上其他点的注释时显示容器视图(因此它的作用恰恰相反),我尝试像这样反转代码:
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
if view.annotation is MKUserLocation {
self.locationInfoContainerView.isHidden = false
} else {
view.canShowCallout = false
}
}
但这会产生相同的结果。有人可以澄清一下并帮助我编程所需的行为吗? I.E:当点击地图注释不同于地图上的用户位置时显示容器视图。
希望这已经足够清楚了,谢谢大家。
在 viewForAnnotation
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
if let userAnnotation = annotation as? MKUserLocation {
userAnnotation.title = ""
return nil
}
}
解决方案是:
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
if annotation is MKUserLocation {
return nil
}
:
: