Sto cercando di ottenere l'istantanea della vista mappa con i metodi startWithCompletionHandler di MKMapSnapshotter. e voglio aggiungere la vista annotazione pin personalizzata per scattare foto. e c'è un'etichetta nella mia vista di annotazione personalizzata. quindi non posso mostrare quell'etichetta quando sto ricevendo un'istantanea. ecco il codice:MKMapSnapshotOptions: Aggiunta dell'istantanea della vista annotazione pin personalizzata o UIView
let snapshotter = MKMapSnapshotter(options: options)
snapshotter.startWithCompletionHandler() {
snapshot, error in
if error != nil {
completion(image: nil, error: error)
return
}
let image = snapshot.image
let pin = MKPinAnnotationView(annotation: nil, reuseIdentifier: "") // I want to use custom annotation view instead of MKPinAnnotationView
let pinImage = UIImage(named: "pinImage")
UIGraphicsBeginImageContextWithOptions(image.size, true, image.scale);
image.drawAtPoint(CGPointMake(0, 0))
var homePoint = snapshot.pointForCoordinate(coordinates[0])
pinImage!.drawAtPoint(homePoint)
pinImage!.drawAtPoint(snapshot.pointForCoordinate(coordinates[1]))
let finalImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
completion(image: finalImage, error: nil)
}
come si può vedere drawAtPoint è funzione della UIImage. Provo ad usare UIImageView quindi aggiungo label a imageView come subView ma non posso usare drawAtPoint con imageView quindi il mio problema è che non posso aggiungere un'etichetta all'istantanea mapView.
si può vedere quello che voglio dire al link: https://www.dropbox.com/s/83hnkiqi87uy5ab/map.png?dl=0
Grazie per la consulenza.
Grazie. Questo è esattamente quello che voglio. – ali
Non puoi aggiungere un'annotazione alla mappa prima di scattare l'istantanea? Perché fare un'istantanea, aggiungere l'immagine e poi fare un altro screenshot? Sembra una perdita di tempo vero? – Supertecnoboff
Da Apple: "Gli oggetti Snapshotter non acquisiscono le rappresentazioni visive di eventuali sovrapposizioni o annotazioni create dall'app. Se si desidera che tali elementi vengano visualizzati nell'istantanea finale, è necessario disegnarli sull'immagine risultante dello snapshot." [Apple] (https://developer.apple.com/reference/mapkit/mkmapsnapshotter) – bluebamboo