MapKit 是 Apple 提供的框架,用于在 iOS 和 iPadOS 应用中显示地图、添加标注和覆盖层。"当前位置"是 MapKit 自动显示的用户当前位置标记,默认显示为蓝色圆点和一个标题为"当前位置"的标注。
MapKit 默认的"当前位置"标注标题是系统预设的,无法直接通过简单的属性修改来更改。这是因为:
import MapKit
class ViewController: UIViewController, MKMapViewDelegate {
@IBOutlet weak var mapView: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
mapView.delegate = self
mapView.showsUserLocation = true
}
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
if annotation is MKUserLocation {
let annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: "userLocation") ??
MKAnnotationView(annotation: annotation, reuseIdentifier: "userLocation")
// 自定义标题
annotationView.canShowCallout = true
annotationView.annotation?.title = "我的位置"
// 可选:自定义图标
// annotationView.image = UIImage(named: "customLocationIcon")
return annotationView
}
return nil
}
}
func mapView(_ mapView: MKMapView, didUpdate userLocation: MKUserLocation) {
userLocation.title = "我的当前位置"
// 可选:添加副标题
userLocation.subtitle = "正在这里"
}
showsUserLocation
属性设置为 true
MKMapViewDelegate
协议没有搜到相关的文章