【问题标题】:TableCell ImageView Set Image With URL: SDWebImage: Only resizing first rowTableCell ImageView 使用 URL 设置图像:SDWebImage:仅调整第一行的大小
【发布时间】:2015-04-16 21:38:58
【问题描述】:

在我的方法中,我有以下代码。

它在第一个表格行记录上效果很好,但是剩余的单元格不会调整大小。

但是,当我开始滚动时,它们会滚动。我似乎无法弄清楚为什么。我还需要做些什么吗?

[cell.imageView sd_setImageWithURL:url
                  placeholderImage: [UIImage imageNamed:@"default.png"]
                         completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {

                          if (image) {

                              NSLog(@"%@", account);

                              CGSize itemSize = CGSizeMake(32, 32);
                              UIGraphicsBeginImageContext(itemSize);
                              CGRect imageRect = CGRectMake(0.0, 0.0, itemSize.width, itemSize.height);
                              [image drawInRect:imageRect];
                              cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
                              UIGraphicsEndImageContext();
                              cell.imageView.layer.cornerRadius = 16;
                              cell.imageView.clipsToBounds = YES;
                          }
    }];

【问题讨论】:

    标签: ios uitableview uiimageview sdwebimage


    【解决方案1】:

    我遇到了同样的问题。 已完成的 SDWebImage 块不会在 UI 线程上运行,因此 ui 更新不会显示在屏幕上。

    在完成块中添加以下内容为我解决了这个问题:

    dispatch_async(dispatch_get_main_queue(), ^{
      [cell setNeedsLayout];
    });
    

    例如有必要向 ui 线程发送一个重新布局单元的请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-09
      • 1970-01-01
      • 1970-01-01
      • 2013-02-02
      • 1970-01-01
      相关资源
      最近更新 更多