这是我的代码,我想添加一个自定义引脚(.png文件),而不是红色引脚。我尝试使用MKPinAnnotationView
和MKAnnotationView
,但我不能添加坐标,字幕和标题。我是iOS开发新手。
override func viewDidLoad() {
super.viewDidLoad()
// Handle the text field’s user input through delegate callbacks.
commentTextField.delegate = self
coreLocationManager.delegate = self
//desired accuracy is the best accuracy, very accurate data for the location
coreLocationManager.desiredAccuracy = kCLLocationAccuracyBest
//request authorization from the user when user using my app
coreLocationManager.requestWhenInUseAuthorization()
coreLocationManager.startUpdatingLocation()
dbRef = FIRDatabase.database().reference()
struct Location {
let title: String
let latitude: Double
let longitude: Double
let subtitle: String
}
// Locations array
let locations = [
Location(title: "Dio Con Dio", latitude: 40.590130, longitude: 23.036610,subtitle: "cafe"),
Location(title: "Paradosiako - Panorama", latitude: 40.590102, longitude: 23.036180,subtitle: "cafe"),
Location(title: "Veranda", latitude: 40.607740, longitude: 23.103044,subtitle: "cafe")
]
for location in locations {
let annotation = MKPointAnnotation()
annotation.title = location.title
annotation.coordinate = CLLocationCoordinate2D(latitude: location.latitude, longitude: location.longitude)
annotation.subtitle = location.subtitle
map.addAnnotation(annotation)
}
}
使用Swift 3
6条答案
按热度按时间ioekq8ef1#
FWIW,现在我一般不会实现
mapView(_:viewFor:)
。我只需要在viewDidLoad
中注册我的注解视图:我会有一个annotation view子类,它会适当地配置annotation view:
屈服:
或者我们可以使用
MKMarkerAnnotationView
:屈服:
无论哪种方式,您都可以对注解视图进行任何配置(例如,我通常通过设置
clusteringIdentifier
来使用集群,并为MKMapViewDefaultClusterAnnotationViewReuseIdentifier
注册另一个注解视图类),但这与此无关。这个想法是注册注解视图类并将其配置放在注解视图类中,而不是使用MKMapViewDelegate
方法mapView(_:viewFor:)
导致视图控制器膨胀。为了子孙后代的缘故,我最初的
mapView(_:viewFor:)
答案如下。您需要指定您的视图控制器作为Map视图的委托(在IB中或在
viewDidLoad
中以编程方式指定),然后(a)指定您符合MKMapViewDelegate
协议;以及(B)实现mapView(_:viewFor:)
:有关更多信息,请参阅位置和Map编程指南:从代理对象创建注解视图。代码片段是用C2C-C编写的,但它描述了基本的过程。
q0qdq0h22#
最后,我这样做了,靠我自己!
ViewController.swift
地点.swift
vdgimpew3#
SWIFT 5
snz8szmq4#
esbemjvw5#
我是这样补充的:
xdyibdwo6#
使用此方法:
对我来说很好。(我的环境:Xcode 9.4.1和iOS 11.4.1)
范例: