UITableViewCell 不使用 Swift 动态调整大小

Posted

技术标签:

【中文标题】UITableViewCell 不使用 Swift 动态调整大小【英文标题】:UITableViewCell not dynamically resizing using Swift 【发布时间】:2015-12-20 18:49:05 【问题描述】:

我正在尝试快速动态调整 UITableView 单元格的大小:

以上是我为尽可能小的屏幕尺寸(iPhone 4)设置的单元格。如果屏幕宽度增加并保持其纵横比,绿色视图(图像)将放大。它固定在顶部,启用了前沿交易边缘和纵横比。下面的标签水平居中。顶部固定在图像底部,高度和宽度固定。

我在 viewDidLoad 中有这段代码:

tableView.estimatedRowHeight = 262
tableView.rowHeight = UITableViewAutomaticDimension

如果我运行应用程序,我会收到警告:

仅警告一次:检测到约束模糊地建议 tableview 单元格的内容视图高度为零的情况。我们正在考虑意外折叠并改用标准高度。 单元格的大小也是错误的,只有大约 25pts 高度。我在这里做错了什么?

【问题讨论】:

【参考方案1】:

首先,请查看此链接。你可能错过了一个重载:

custom UItableView not displaying correctly on ios8

其次,再次查看您的约束条件。就垂直维度而言,您已经设置了从图像到顶部、从图像到标签以及从标签到底部的距离。

标签的大小将由文本给出。

但是图像的大小是不确定的。您有一个前导约束和一个纵横比,但它如何指定大小?

基本上如果你自己渲染,你有足够的信息来做吗?

【讨论】:

对于图像,我有一个前导和尾随约束。所以尺寸会根据屏幕的宽度来指定【参考方案2】:

尝试添加约束:标签底部到单元格底部

移除标签的固定高度。

希望这会有所帮助。

【讨论】:

以上是关于UITableViewCell 不使用 Swift 动态调整大小的主要内容,如果未能解决你的问题,请参考以下文章

需要在 Swift 中的 UITextField 委托方法中引用自定义 UITableViewCell 而不使用 tag 属性

UITableViewCell中的Swift ScrollView不滚动

Swift交替UITableViewCell渐变颜色

uitableviewcell 不显示 swift 3

swift - 在不重新加载自定义 UITableViewCell 的情况下设置 UILabel

Swift 3 - 从 xib 加载的 UITableViewCell - 自动布局和高度不正确