Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 即使用户滚动表格,如何在UITableViewCell中填充图像_Iphone_Objective C_Uitableview_Grand Central Dispatch - Fatal编程技术网

Iphone 即使用户滚动表格,如何在UITableViewCell中填充图像

Iphone 即使用户滚动表格,如何在UITableViewCell中填充图像,iphone,objective-c,uitableview,grand-central-dispatch,Iphone,Objective C,Uitableview,Grand Central Dispatch,我将试着解释我自己,我有一个ContactsViewController,它显示一个带有联系人列表的表视图(模型是一个Contact对象的数组),每个单元格显示一个联系人的图像 目前,我填充单元格的UIImageView的操作如下: 1.我覆盖联系人图像属性getter- - (UIImage *)contactImage { if (!_contactImage) { _contactImage = [[UIImage imageNamed:@"placeHolde

我将试着解释我自己,我有一个
ContactsViewController
,它显示一个带有联系人列表的表视图(模型是一个
Contact
对象的数组),每个单元格显示一个联系人的图像

目前,我填充单元格的
UIImageView
的操作如下:
1.我覆盖
联系人
图像属性getter-

- (UIImage *)contactImage
 {
     if (!_contactImage) {
        _contactImage = [[UIImage imageNamed:@"placeHolder.png"] retain];
       [self asyncDownloadContactImageFromServer];
     }
     return _contactImage;
 }
  • 然后,当我下载完图像后,我将其设置为
    contactImage
    属性,并发布
    ContactUpdatedImageNotification

  • My
    ContactsViewController
    然后获取此通知并重新加载此联系人的单元格,这将将下载的图像设置为单元格的imageView

  • 这样做的结果是在用户滚动表视图时,可以很好地异步获取图像,而不会阻塞用户界面。
    但是当用户滚动表格视图并显示新的单元格时,有一些小问题困扰着我。新单元格的图像按预期下载,但直到用户拿起手指,单元格的图像视图才更新为新下载的图像。

    我想我需要在另一个线程中做一些事情来实现这个效果,但我不知道如何做?

    嘿,Eyal访问下面的url…您将得到答案以及示例代码


    希望这能帮助您……

    由于在默认运行循环中执行的代码延迟到滚动完成,因此直到用户停止滚动,图像才会更新。另一个问题涉及运行循环之间的差异,它确切地建议在滚动时不要更新图像,因为如果您不小心的话,这可能会在滚动过程中引入抖动


    另外,现在您已经了解了这些运行循环模式的存在,您将能够在xcode文档或internet中找到更多关于它们的信息。

    使用此链接….>>>它确切地建议您在滚动时不要更新图像-所以您说我这样做更好?我仍然不知道如何在滚动时更新。你有一些例子吗?