根据内容可用性调整 UITableViewCell 的大小作为响应

Posted

技术标签:

【中文标题】根据内容可用性调整 UITableViewCell 的大小作为响应【英文标题】:Resize UITableViewCell based on content availability in response 【发布时间】:2017-02-15 16:27:34 【问题描述】:

我有一个可自行调整大小的 UITableViewCell,用于显示博客文章。 帖子由文本图片组成。我现在面临的挑战是有些帖子不包含图片。

如何使用自动布局调整单元格的大小?也许我应该改为设置UIImageView.isHidden = true

谢谢!

【问题讨论】:

【参考方案1】:

考虑到您说您正在使用自动调整单元格大小,以下是您应该遵循的步骤:

1) 首先将您的tableview cell 子类化为自定义UITableViewCell

2) 在上面的类中为 UIImageView 取一个出口为:

@IBOutlet weak var myImageView: UIImageView

3) 将故事板中此图像视图的auto layout 约束设置为leadingtrailingtopheight 约束

4) 在同一个 UITableViewCell 类中为 imageview 的height constraint 取出口:

@IBOutlet weak var heightConstraint: NSLayoutConstraint!

5) 在您的cellForRow 方法中,检查您的数据是否包含图像。如果不存在图像,则更改高度约束的值:

if myImage == nil 

    if myCustomCell.heightConstraint != nil 

       myCustomCell.heightConstraint.constant = 0
       myCustomCell.updateConstraintsIfNeeded()
    

这应该可以按预期工作。如果没有,请发布您应用的限制条件。

【讨论】:

这很好用@Nilesh Pol。非常感谢!

以上是关于根据内容可用性调整 UITableViewCell 的大小作为响应的主要内容,如果未能解决你的问题,请参考以下文章

动态 UITableViewCell 不根据内容调整大小

带有 UIWebview 的 UITableViewCell,可根据内容大小调整高度

如何根据 UITableViewCell 中的内容调整水平 UICollectionView 的高度

如何让 UITableViewCell 调整高度以适应其内容?

在 iOS Swift 中动态调整 UITableViewCell 高度

让 UITableViewCell 使用自动布局调整自身大小