【发布时间】:2018-10-02 04:33:33
【问题描述】:
我有一个 UITableView 填充了一种类型的自定义 UITableViewCell。每个单元格包含一个title(UILabel)、subtitle(UILabel)和thumbnail(UIImageView),如下所示。
三个子视图的宽度都是固定的,但只有字幕标签的高度是固定的。标题标签的高度根据文本量是动态的。我已将标题标签的 numberOfLines 设置为 0 以反映这一点。
我的目标:单元格的高度应该由标题标签的高度决定。换句话说,单元格高度应该是两个标签的高度加上三个垂直填充间隙的总和。图像高度应设置为单元格的结果高度。
我当前的实现:我设置了以下自动布局约束:
- 缩略图在顶部、左侧和底部与 superview 挂钩
- 缩略图宽度与父视图宽度成 0.2 的倍数成正比
- 缩略图的右侧与标题和副标题挂钩(尾随空格 = 8)
- 标题与顶部和右侧的超级视图挂钩(尾随空格 = 8)
- 标题底部与副标题挂钩(尾随空格 = 8)
- 标题高度大于等于24
- 字幕在右侧和底部与 superview 挂钩(尾随空格 = 8)
- 字幕高度等于20
另外:
- 标题
numberOfLines= 0 - 缩略图
contentMode= 纵横比填充 - 缩略图
clipToBounds= true
问题:图片高度不尊重标签高度,所以单元格高度设置为图片全高,标题标签垂直拉伸。考虑到我使用的限制,这是可以理解的,但这不是我想要发生的。
我的问题:如何约束 UIImageView 的高度以尊重单元格高度(由动态标签高度确定),而不是让单元格高度尊重 UIImageView 高度?
我的环境:
- Xcode 10
- iOS 11 和 12
- 斯威夫特 4.2
【问题讨论】:
标签: ios swift autolayout