MKMapSnapshotter занимает много времени для создания изображения
У меня есть рабочий MKMapSnapshotter в моем awakeWithContext, и я хочу установить его изображение для моего imageView.
Проблема в том, что MKMapSnapshotter должен работать медленно, и изображение не будет установлено. Только через одну или две секунды он создает снимок.
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
var finalImage = UIImage()
var snapshotterEnd = MKMapSnapshotter()
snapshotterEnd.startWithCompletionHandler(){snapshot, error in
finalImage = snapshot.image
}
imageView.setImage(finalImage)
}
Как я могу это исправить?
1 ответ
Решение
Вы должны убедиться, что обработчик завершения сам установит изображение.
snapshotterEnd.startWithCompletionHandler() { snapshot, error in
imageView.setImage(snapshot.image)
}
Блок завершения задокументирован как работающий в главном потоке, поэтому вам не нужно использовать dispatch_async
запустить его там.