を表示しません注釈を追加する:AnnotationViewは、以下に示すように、私は「PlaceAnnotationView」というカスタム注釈ビューを作成し
private func populateNearByPlaces() {
var region = MKCoordinateRegion()
region.center = CLLocationCoordinate2D(latitude: self.mapView.userLocation.coordinate.latitude, longitude: self.mapView.userLocation.coordinate.longitude)
let request = MKLocalSearchRequest()
request.naturalLanguageQuery = self.selectedCategory
request.region = region
let search = MKLocalSearch(request: request)
search.start { (response, error) in
guard let response = response else {
return
}
for item in response.mapItems {
let annotation = PlaceAnnotation()
annotation.title = item.name
annotation.subtitle = "subtitle"
annotation.mapItem = item
DispatchQueue.main.async {
self.mapView.addAnnotation(annotation)
}
}
}
}
ここにPlaceAnnotatiのコードがありますonView:ここ
import Foundation
import MapKit
class PlaceAnnotationView : MKPinAnnotationView {
override init(annotation: MKAnnotation?, reuseIdentifier: String?) {
super.init(annotation: annotation, reuseIdentifier: reuseIdentifier)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
はPlaceAnnotationのコードです:
輸入財団 輸入MapKit
class PlaceAnnotation : MKPointAnnotation {
var mapItem :MKMapItem!
}
しかし、私は私の注釈が地図上に表示されているのいずれかが表示されません。 viewForAnnotation
は、注釈ごとに複数回発生しますが、画面には何も表示されません。
MKAnnotationをどのように追加しましたか?あなたは私たちにそのコードを表示できますか? –
もっと多くのコードを表示する必要があります。マップビューに注釈を追加する場所を表示します。 PlaceAnnotationViewを表示します。また、注釈ビューが再利用された場合、 'viewForAnnotation'の実装が間違っていることに注意してください。注釈ビューの「注釈」を設定できません。 – matt
@mattコードを更新しました。 viewForAnnotationの実装が意味することが間違っているとわかっているかどうかはわかりません。 –