2015-09-30 56 views
0

我有一个自定义UITableViewCell,如下图所示:自定义的UITableViewCell,支持自动布局问题

enter image description here

我的形象已经固定的宽度和高度,我的描述标签填充剩下的宽度并具有自动高度基于其内容。

这就产生了一个问题,因为根据描述标签的高度,从未有一个固定的锚我的手机的底部附着。

所以,目前我有一个从图像底部到单元格边距底部的约束,关系> = 0。同样,我对描述标签的底部有一个约束,其关系为> = 0

然而,当我跑我的应用程序的自动布局总是使用图像约束来计算,而不是底部的描述标签约束,当描述标签甚至更高的时候。这剪辑了我的标签。

我有一种感觉,这可能是是与内容拥抱和抗压性,但两种观点分别为251和750。 (我已经玩弄了这些,但没有运气 - 我没有完全理解它们)

当描述小于图像时,如何成功地使用自动布局将单元格的底部附加到图像上?反之亦然?

+0

更新,当一个细胞滚动关闭屏幕和reshown滚动时回到它,它似乎正确显示... –

+0

你有任何运行时限制警告? – ppaulojr

+0

查看WWDC 2015自动布局第1部分的奥秘,第二部分是我想要的。 enlight – Wingzero

回答

0

您可以从标签中删除底部约束,并将垂直内容拥抱和垂直内容压缩设置为1000(必需)。这基本上告诉标签,只要它拥抱内容,它可以具有无限的垂直高度。问题是如果描述非常长,它将通过单元格底部导致文本被剪切中线。为了避免头痛,将标签的最大线数和换行符模式设置为“截尾”。

这一切都假设你不介意描述文本被切断。 如果您希望单元格的高度根据其内容动态更改,这是一个不同的故事。

对于动态单元格高度,改变图像和描述标签==然后添加这两种方法你的viewController的底部约束:

-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    return 100; // min cell height 
} 
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    return UITableViewAutomaticDimension; 
} 
+0

简而言之,我绝不希望描述文本被切断。细胞也不应小于切断图像。 –

+0

@ Wingzero的回答是我一直在寻找的 –