这是我拥有的 UITableViewCell
:
三个UILabel
有trailing
、top
、bottom
和leading
约束。
- 这是
UILabel
的拥抱优先级和抗压缩优先级 名称:
- 这是
UILabel
的拥抱优先级和抗压缩优先级位置:
- 这是
UILabel
类型的拥抱优先级和压缩阻力优先级:
在我的 UITableViewController
的 viewDidLoad
上,我正在做这样的事情:
self.tableView.estimatedRowHeight = 80
self.tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.reloadData()
但是当我运行应用程序时,UITableViewCell
不会自行调整大小:
我做错了什么或者我需要做什么才能让 UITableViewCell
自动调整大小?
编辑
我将每个 UILabel
的 numberOfLines
设置为 0,现在位置 UILabel
没有出现
最佳答案
很可能是您的文本在运行时变得更大,导致您的单元格 View 中的总高度变得大于行高本身。
首先使所有拥抱优先级相等,然后尝试使用“大于或等于”关系更改标签之间的间距,然后将常量设置为较小的值,例如零。如果仍然出现约束错误,请增加 tableView 的行高。
替代方法: 将所有 3 个 UILabel 添加到另一个 UIView 中,它们之间的间距为零,不要为此 UIView 设置高度限制,只需将其设置在 cellView 的中心 Y 并与 ImageView 间隔
提示:如果您的 UI 是您想要的,即使在约束被打破之后,也只能更改约束优先级,除非您当然知道自己在做什么
关于ios - 具有三个 UILabel 的 self 调整单元格不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39382097/