此代码位于单元初始化例程中,用于设置自定义单元格的元素。它以异步方式从Web获取图像。但是我需要它重绘一次。
这是我的代码片段:
dispatch_async(myCustomQueue, ^{
//Look for the image in a repository, if it's not there
//load the image from the web (a slow process) and return it
mCover.image = [helperMethods imageManagerRequest:URL];
//Set the image to be redrawn in the next draw cycle
dispatch_async(dispatch_get_main_queue(), ^{
[mCover setNeedsDisplay];
});
});
但它没有重绘UIImageView。我试图重新绘制整个单元格,但这也不起作用。非常感谢您的帮助。我一直试图解决这个问题!
答案 0 :(得分:3)
而不是setNeedsDisplay
,您应该像Apple在their documentation中提到的那样在主线程上设置图像。
注意:在大多数情况下,UIKit类只能用于 应用程序的主要线程。对于课程尤其如此 源自UIResponder或涉及操纵你的 应用程序的用户界面。
这可以解决您的问题:
dispatch_async(myCustomQueue, ^{
//Look for the image in a repository, if it's not there
//load the image from the web (a slow process) and return it
UIImage *image = [helperMethods imageManagerRequest:URL];
//Set the image to be redrawn in the next draw cycle
dispatch_async(dispatch_get_main_queue(), ^{
mCover.image = image;
});
});