nin*_*ple 6 uitableview tableviewcell ios autolayout swift
我正在使用自动调整项目中的单元格大小.我希望将单元格保持在最小值height,但是我无法在内容视图中为我的单元格设置最小height 约束(因为它在" 添加新约束"视图中显示为灰色:
无论如何都要为我的细胞添加最小height 约束?
Gio*_*gio 10
当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))
}
}
Run Code Online (Sandbox Code Playgroud)
然后
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
}
Run Code Online (Sandbox Code Playgroud)
我将此约束添加到我的单元格中,但在代码中(快速)
contentView.heightAnchor.constraint(equalToConstant: 80).isActive = true
Run Code Online (Sandbox Code Playgroud)
如果您的单元格视图需要更多空间:
contentView.heightAnchor.constraint(greaterThanOrEqualToConstant: 80).isActive = true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5413 次 |
| 最近记录: |