我有一个试图加载图像的UIImageView,如果不存在,我会打电话下载图像。下载图像后,将发送NSNotification并将UIImageView.image设置为下载的图像。这是可行的,但是设置图像后需要几秒钟的时间才能显示在UIImageView中。再次在下载图像后发送通知,因此延迟不是下载图像。
这是通知:
- (void)recieveImageDownloadUpdate:(NSNotification *)notification {
if ([[item valueForKey:@"FlipBookPhotoID"] intValue] == imgView1.tag) {
// this loads the image if the tag on the UIImageView matches the notification update
imgView1.image = [Helpers getImageDownloadIfMissing:[[item valueForKey:@"PhotoName"] stringByReplacingOccurrencesOfString:@"_lg" withString:@""] withManufacturer:[item valueForKey:@"ManufacturerID"] withFlipBookID:[item valueForKey:@"FlipBookID"] withFlipBookPhotoID:[item valueForKey:@"FlipBookPhotoID"] shouldDownload:NO ];
}
}
所有这些都在启用了页面调度的UIScrollView中使用,如何使这些图像在通知后立即显示。
最佳答案
也许您没有在主线程中设置它。所有UI工作都需要在此完成。
- (void)recieveImageDownloadUpdate:(NSNotification *)notification {
if ([[item valueForKey:@"FlipBookPhotoID"] intValue] == imgView1.tag) {
dispatch_async(dispatch_get_main_queue(), ^{
imgView1.image = [....]
});
}
}
关于iphone - 通过NSNotification设置时,UIImageView.image需要花费几秒钟的时间才能显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8644728/