设置 AutoLayout 前导约束以在自定义 UITableViewCell 中正确放置标签
Setting AutoLayout leading constraint to properly place label in custom UITableViewCell
默认的 UITableViewCell 布局遵循约定,即最左边的标签恰好从单元格分隔线开始的位置开始(在 separatorInset
)。我必须创建一个自定义的 UITableViewCell
,它将沿着具有默认布局的单元格显示,因此我希望我的标签准确地从默认布局开始。
我应该如何设置标签的前导约束以正确放置它们?
这是我的测试:
- 单元格(绿色):距左边缘 16 像素,无边距
- 单元格(红色):距左边缘 20 像素,无边距
- 单元格(蓝色):距左边距 12 像素
- 单元格(白色):"Basic"默认单元格布局
小屏幕(3.5"、4"、4.7")
大屏幕 (5.5", iPad)
如您所见,在小屏幕上,separatorInset 为 16 px,在大屏幕上为 20 px。 margin 没有按预期工作:无论屏幕有多大,它都是 8 px。
我找到了正确的解决方案:您必须使用基于大小 class 的约束值,如下所示:
您必须将默认约束值设置为 16,按常量字段旁边的小加号按钮,添加常规宽度 > 任意高度并在新字段中输入 20。
默认的 UITableViewCell 布局遵循约定,即最左边的标签恰好从单元格分隔线开始的位置开始(在 separatorInset
)。我必须创建一个自定义的 UITableViewCell
,它将沿着具有默认布局的单元格显示,因此我希望我的标签准确地从默认布局开始。
我应该如何设置标签的前导约束以正确放置它们?
这是我的测试:
- 单元格(绿色):距左边缘 16 像素,无边距
- 单元格(红色):距左边缘 20 像素,无边距
- 单元格(蓝色):距左边距 12 像素
- 单元格(白色):"Basic"默认单元格布局
小屏幕(3.5"、4"、4.7")
大屏幕 (5.5", iPad)
如您所见,在小屏幕上,separatorInset 为 16 px,在大屏幕上为 20 px。 margin 没有按预期工作:无论屏幕有多大,它都是 8 px。
我找到了正确的解决方案:您必须使用基于大小 class 的约束值,如下所示:
您必须将默认约束值设置为 16,按常量字段旁边的小加号按钮,添加常规宽度 > 任意高度并在新字段中输入 20。