ios - UITableViewCell中带有图像的动态标签?
问题描述
我们有两个(第一个标签动态高度)标签和一个在 UITableview 和我们的图像大小静态假设 120*70
我们正在将图像底部约束设置为单元格超级视图,但是当标签内容高度大于图像高度时,第二个标签会自动进入单元格。
我们正在使用UITableViewAutomaticDimension
在这里,我们混淆了为标签设置约束,如何按比例设置标签和图像的高度。
如果我们尝试对标签进行底部约束并将高度和宽度固定到图像,那么单元格底部会出现空白。
我的单元格设计如下图所示:
使用以下约束检查我的输出
输出:
约束图像:
解决方案
您可以通过将底部约束设置为大于或等于底部标签和图像视图来轻松完成此操作。
首先,确保您使用的是:
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 100
因此单元格/行将自动调整大小以适应内容。
对于单元原型,我有(背景颜色,所以我们可以看到框架):
- 多行标签约束顶部
8
和前导8
(来自超级视图,不使用边距) - 图像视图限制顶部
8
和尾随0
(来自超级视图,不使用边距)和宽度119
高度87
(基于您发布的图像) - 1-Line Label 约束前导和尾随到多行标签,以及顶部
4
到多行标签 - 多行标签也被限制
8
到图像视图的尾随
现在关键是接下来的两个约束......
- 将 1 行标签的
>= 8
底部约束到超级视图的底部 - 将图像视图的底部也约束
>= 8
到超级视图的底部
现在,单元格高度将自动扩展以适应更高的元素:
并且,它在没有彩色背景的情况下看起来如何:
完整的项目可以在这里找到:https ://github.com/DonMag/AnotherExpandingCell
推荐阅读
- c - 交换寄存器内容的汇编程序
- python - 在 python 中计算需求价格弹性的三个 for 循环返回 NaN 值
- node.js - Heroku Private Spaces 用于通过 VPN 访问内部应用程序
- php - 使用 WordPress 内置功能如何确定当前正在编辑哪个页面?
- html - html5 响应式快捷方式图标
- reactjs - 如何在每次页面刷新时阻止 socketio 重新连接
- python - Python - 有没有办法检查字典是否包含特定数量的键值对?
- pyspark - 在 pyspark 中解析嵌套的 json - 嵌套数组
- r - st_geometry 似乎对浮点数进行舍入
- mariadb - 与 MariaDB 相比,InfluxDB 2.0 使用 Python 客户端的写入性能较慢