Я пытаюсь получить моментальный снимок отображения карты с помощью методов startWithCompletionHandler для MKMapSnapshotter. и я хочу добавить индивидуальный просмотр аннотаций для снимков. и в моем пользовательском представлении аннотации есть метка. поэтому я не могу показать эту метку, когда я получаю снимок. вот код:MKMapSnapshotOptions: добавление моментального снимка пользовательского представления аннотации контактов или 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)
}
как вы можете видеть drawAtPoint является функцией UIImage. Я пытаюсь использовать UIImageView, тогда я добавляю ярлык к imageView в качестве подвид, но я не могу использовать drawAtPoint с imageView, поэтому моя проблема заключается в том, что я не могу добавить ярлык в моментальный снимок mapView.
вы можете увидеть, что я имею в виду ссылку: https://www.dropbox.com/s/83hnkiqi87uy5ab/map.png?dl=0
Спасибо за советы.
Спасибо.Это именно то, что я хочу. – ali
Не можете ли вы добавить аннотацию к карте, прежде чем делать снимок? Зачем делать снимок, добавлять изображение, а затем снимать еще один снимок экрана? Кажется, пустая трата времени, не так ли? – Supertecnoboff
От Apple: «Объекты Snapshotter не захватывают визуальные представления любых наложений или аннотаций, создаваемых вашим приложением. Если вы хотите, чтобы эти элементы отображались в последнем снимке, вы должны нарисовать их на полученном снимке моментального снимка». [Apple] (https://developer.apple.com/reference/mapkit/mkmapsnapshotter) – bluebamboo