微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – UITableViewCell最小高度,自动调整单元格大小

我正在使用自动调整项目中的单元格大小.我想将单元格保持在最小高度,但我无法在内容视图中为单元格设置最小高度约束(因为它在“添加新约束”视图中显示为灰色:

enter image description here

无论如何要为我的细胞添加最小高度限制吗?

解决方法

当启用UITableViewAutomaticDimension时,系统调用UITableViewCell的 systemLayoutSizeFittingSize:withHorizontalFittingPriority:verticalFittingPriority:方法来计算单元格高度,因此您可以继承UITableViewCell并覆盖此方法以强制单元格的最小高度,这样

class MinHeightTableViewCell: UITableViewCell {

    var minHeight: CGFloat?

    override func systemLayoutSizefitting(_ targetSize: CGSize,withHorizontalFittingPriority horizontalFittingPriority: UILayoutPriority,verticalFittingPriority: UILayoutPriority) -> CGSize {
        let size = super.systemLayoutSizefitting(targetSize,withHorizontalFittingPriority: horizontalFittingPriority,verticalFittingPriority: verticalFittingPriority)
        guard let minHeight = minHeight else { return size }
        return CGSize(width: size.width,height: max(size.height,minHeight))
    }
}

然后

public func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "minHeightCell",for: indexPath) as! MinHeightTableViewCell
    cell.minHeight = 62 // change with your desidered min height
    cell.textLabel?.text = "some text"
    return cell
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐