【发布时间】:2015-08-04 14:31:38
【问题描述】:
我有.xib,它有一些像这样的自动布局(可能需要点击放大):
没什么特别的,我有13pt 与superview 的边框间距。
然后将此 xib 在代码中加载到 tableViewCell 中。
我还在表格的viewDidLoad 中设置高度,如下所示:
[self.tableView setEstimatedRowHeight:40];
[self.tableView setRowHeight:UITableViewAutomaticDimension];
我的 cellForRowAtIndexPath 是:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reuseId forIndexPath:indexPath];
---OR---(两者都没有区别)
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reuseId];
现在乐趣开始了。自动布局在需要时工作,有时我将一个单元格滚动到视野之外,将其带回来,它的大小不一样。见下图:
关于我做错了什么有什么想法吗?
PS:这里不在屏幕截图中,但我确实有一些带有大量文本的单元格,看起来与左侧大单元格的高度相同。
PPS:我尝试了以下但没有成功(基于这篇文章http://useyourloaf.com/blog/2014/08/07/self-sizing-table-view-cells.html):
- 在 viewDidLoad 中添加了
[self.tableView reloadData]; - 我删除了标签上的明确和首选宽度
【问题讨论】:
-
你是否也在
heightForRowAtIndexPath函数中设置了这个单元格的高度? -
我正在这样做
[self.tableView setEstimatedRowHeight:40]; [self.tableView setRowHeight:UITableViewAutomaticDimension]; -
能否提供您的 cellForRowAtIndexPath?
-
@Doro 已添加。我在答案中尝试了您的建议,但没有奏效:(
-
你有 13 个点间距而不是 13 个像素
标签: ios xcode autolayout interface-builder