UITableViewCell 约束

Posted

技术标签:

【中文标题】UITableViewCell 约束【英文标题】:UITableViewCell Constraints 【发布时间】:2016-04-04 07:06:27 【问题描述】:

所以我一直在尝试制作包含图像和标签的 UITableViewCell 的自定义布局,如下图所示。

主要的问题是压缩和拥抱我没有把手指放在它上面,我不明白为什么图像会膨胀,我已经改变了两者的压缩和拥抱

图像设置:

标签设置:

关于如何修复标签缩小的任何建议?

【问题讨论】:

您不必同时给出Top + BottomAlign Centre Y 约束。如果TopBottom 约束常量的值不同,它们可能会发生冲突。 不能把图片设为固定宽度? 【参考方案1】:

内容拥抱是按比例缩放的,因此更大的数字意味着“做更多的拥抱”。换句话说,您的标签(内容拥抱优先级 = 251)将尝试使其大小与内容大小相匹配,而不是您的图像(内容拥抱优先级 = 249)。

要做你想做的事,你需要相反的优先级。

也就是说,如果您将图像设置为固定宽度或固定纵横比,您可能会发现布局会更好,否则当它们在表格中时看起来会很奇怪。如果这样做,则无需调整拥抱优先级,因为一切都会受到限制。

另外,@matthews 是对的,您应该摆脱 Center Y 约束,因为它与 Top 和 Bottom 约束一起时毫无意义。

【讨论】:

【参考方案2】:

您可以为 ImageView (即前导、顶部、高度(自身)、宽度(自身)和尾随空间设置标签,然后为标签(即顶部、尾随和高度本身)设置约束。希望它会按照您的要求工作。

【讨论】:

【参考方案3】:

希望对您有所帮助:

对于UIImageView

对于UILabel

使用下面的代码来调整大小的单元格

tableView.estimatedRowHeight = 100.0
tableView.rowHeight = UITableViewAutomaticDimension

【讨论】:

以上是关于UITableViewCell 约束的主要内容,如果未能解决你的问题,请参考以下文章

将 UITable 中 UITableViewCell 中子视图中对象的 CGRect 转换为相对于 self.view 的 CGRect

奇怪的 iOS 8 自动布局问题

将子视图添加到 UITable

保存后 UITableViewCell 和 Coredata 上的 UIImage 的方向发生了变化

UITableViewCell 中的 UICollectionView

视图宽度不等于单元格宽度 inseide uitable?