图像下载后调整表格单元格大小

Posted

技术标签:

【中文标题】图像下载后调整表格单元格大小【英文标题】:Resize table cell after image downloaded 【发布时间】:2016-03-23 11:53:16 【问题描述】:

我正在使用 SDWebImage 库下载图像并加载到表格单元格内的图像视图中。

我想在图片下载后调整表格单元格的大小。请指教。非常感谢。

图像设置为图像视图后,单元格未正确调整大小

单元格在出列并再次加载后正确调整大小

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 

    let cell = tableView.dequeueReusableCellWithIdentifier(GagListTableViewCell.cellId, forIndexPath: indexPath) as! GagListTableViewCell
    cell.layoutMargins = UIEdgeInsetsZero
    let gagDataCommand = gagDataSource[indexPath.row]

    if let caption = gagDataCommand.caption 
        cell.captionLabel.text = caption
    

    if let imageUrlStr = gagDataCommand.images?.normal 
        if let imageUrl = NSURL(string: imageUrlStr)                 
            cell.gagImage.sd_setImageWithURL(imageUrl, placeholderImage: UIImage(named: AppConstants.imagePlaceHolderName), completed:  (image, error, cacheType, url) in
                 //guess I need to redraw the layout here
            )
         else 
            //fail to get image url, set placeholder image to the cell instead
            cell.gagImage.image = UIImage(named: AppConstants.imagePlaceHolderName)
        
    

    return cell

【问题讨论】:

你使用了自动布局吗? 设置下载的图片后,能否尝试在tablecell上调用layoutIfNeeded() 通过以下链接***.com/questions/31805341/… 是的,我正在使用自动布局。我尝试了 layoutIfNeeded 但无法解决问题。 问题解决了吗?如果是,请提供解决方案,因为我也面临同样的问题并且没有得到任何适当的解决方案。 【参考方案1】:

您可以为 tableview 单元格使用自动尺寸。

tableView.rowHeight = UITableViewAutomaticDimension

【讨论】:

是的,我已将 rowHeight 设置为 UITableViewAutomaticDimension。它不适用于设置占位符图像并且需要下载图像的情况 你是单独下载图片?? 你能把图像视图改成宽高比吗? 我必须使用缩放来缩放以填充我的情况。我附上了我的源代码。感谢您的帮助。

以上是关于图像下载后调整表格单元格大小的主要内容,如果未能解决你的问题,请参考以下文章

异步图像下载和调整图像高度后如何更新表格视图单元格

下载内部图像后调整 UICollectionView 单元格的大小

ios在表格视图单元格中视觉调整图像大小

表格中的右图未调整大小

自调整大小表格单元格中的 ImageView 在应用 Aspect Fit 之前使用图像的高度

更新图像高度约束后更新表格视图单元格高度