我的 awakeWithContext 中有一个工作的MKMapSnapshotter,我想为我的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)
}
我该如何解决这个问题?
答案 0 :(得分:2)
您需要确保完成处理程序本身将设置图像。
snapshotterEnd.startWithCompletionHandler() { snapshot, error in
imageView.setImage(snapshot.image)
}
完成块记录为在主线程上运行,因此您不需要使用dispatch_async
在那里运行它。