UITableViewCell 布局问题

Posted

技术标签:

【中文标题】UITableViewCell 布局问题【英文标题】:UITableViewCell layout problems 【发布时间】:2015-01-21 00:25:06 【问题描述】:

我有一个简单的自定义UITableViewCell,如下所示:

UIImageView 应该与单元格一样高,并且在最左侧时保持相同的比例。这行得通。

标题标签应该保持垂直居中,并且图像中的像素数量为 x。这行得通。

最后,9.9 标签应该垂直居中,距离右侧的披露指示符 x 像素。这行得通。

问题是,我试图使标题标签尽可能宽,同时保留图像和 9.9 标签的 x 像素。我尝试通过在图像(左填充)和 9.9 标签(右填充)上设置约束来做到这一点,但随后 Xcode 抱怨 9.9 标签的水平设置不明确。

谁能帮我在不破坏 9.9 标签右侧约束的情况下给标题标签一个动态宽度?

【问题讨论】:

【参考方案1】:

可能有点晚了,但是您有 2 个可以增长或缩小的标签。由于您没有给约束提供任何线索,因此代码无法决定 Title 是否应该增长或 9.9 应该增长以适应屏幕的宽度。

您可以调整标题的水平拥抱/压缩,使其在 9.9 标签之前增长。这意味着您可以避免使用固定宽度。

【讨论】:

【参考方案2】:

我认为如果您将 9.9 标签约束为固定宽度(假设您知道它的大小不会改变),它会起作用。

从左到右:

图像的左约束为 0 图片有比例限制 标题标签对x像素的图像有限制 标题右限制为 x 像素的 9.9 9.9 有固定宽度限制 x像素的9.9右约束

希望对你有帮助

【讨论】:

完全忘记了固定宽度,这就是我需要的!感谢您的帮助!

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

如何在 UITableViewCell 上使用 CAGradientLayers

如何在 UITableViewCell 中添加多行文本字段?

自定义 UITableViewCell 创建了两次......让我发疯

UITableViewCell 使用 separatorInset 隐藏分隔符在 iOS 11 中失败

iOS - UITableViewCell 内的 UIScrollView 内的 UIView 未触发 UITapGestureRecognizer

在 UITableViewCell 中选择后展开和折叠特定行