ios - 具有三个 UILabel 的 self 调整单元格不起作用

标签 ios swift uitableview autolayout

这是我拥有的 UITableViewCell:

cell

三个UILabeltrailingtopbottomleading约束。

  • 这是 UILabel 的拥抱优先级和抗压缩优先级 名称:

name priority

  • 这是 UILabel 的拥抱优先级和抗压缩优先级位置:

location priority

  • 这是 UILabel 类型的拥抱优先级和压缩阻力优先级:

type priority

在我的 UITableViewControllerviewDidLoad 上,我正在做这样的事情:

 self.tableView.estimatedRowHeight = 80
 self.tableView.rowHeight = UITableViewAutomaticDimension
 self.tableView.reloadData()

但是当我运行应用程序时,UITableViewCell 不会自行调整大小:

result

我做错了什么或者我需要做什么才能让 UITableViewCell 自动调整大小?

编辑

我将每个 UILabelnumberOfLines 设置为 0,现在位置 UILabel 没有出现

最佳答案

很可能是您的文本在运行时变得更大,导致您的单元格 View 中的总高度变得大于行高本身。

首先使所有拥抱优先级相等,然后尝试使用“大于或等于”关系更改标签之间的间距,然后将常量设置为较小的值,例如零。如果仍然出现约束错误,请增加 tableView 的行高。

替代方法: 将所有 3 个 UILabel 添加到另一个 UIView 中,它们之间的间距为零,不要为此 UIView 设置高度限制,只需将其设置在 cellView 的中心 Y 并与 ImageView 间隔

提示:如果您的 UI 是您想要的,即使在约束被打破之后,也只能更改约束优先级,除非您当然知道自己在做什么

关于ios - 具有三个 UILabel 的 self 调整单元格不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39382097/

相关文章:

ios - 在 iOS Swift 2 中实现 "Read More"按钮以展开 UITextView 的最简单方法?

ios - Cocos2d-x 3.0 中的传递信息和 NotificationCenter

ios - UITableView 设置背景颜色

iOS 6 推特分享不使用系统账户

android - 如何删除React Native上的所有应用程序数据?

ios - 如何在 Firebase 中通过 homefeed 实现关注者和关注?

swift - tvOS 13 顶架 - NSExtensionPrincipalClass `product_module_name.ContentProvider` 必须实现至少一个公共(public)协议(protocol)

ios - 将 UIImageView 从正常更改为突出显示不起作用

ios - 保持 tableview 的第一行不变

ios - UITableViewCell 内的 AVPlayer 与其他 View 自动布局