【问题标题】:Setting AutoLayout leading constraint to properly place label in custom UITableViewCell设置 AutoLayout 前导约束以在自定义 UITableViewCell 中正确放置标签
【发布时间】:2016-06-03 23:03:16
【问题描述】:

默认的 UITableViewCell 布局遵循约定,即最左边的标签正好从单元格分隔线开始的位置开始(separatorInset)。我必须创建一个自定义UITableViewCell,它将与具有默认布局的单元格一起显示,因此我希望我的标签从默认位置开始。

我应该如何设置标签的前导约束以正确放置它们?

这是我的测试:

  1. 单元格(绿色):距左边缘 16 像素,无边距
  2. 单元格(红色):距左边缘 20 像素,无边距
  3. 单元格(蓝色):距左边距 12 像素
  4. 单元格(白色):“基本”默认单元格布局

小屏幕(3.5"、4"、4.7")

大屏幕(5.5 英寸,iPad)

如您所见,在小屏幕上,separatorInset 为 16 像素,在大屏幕上为 20 像素。边距没有按预期工作:无论屏幕多大,它都是 8 px。

【问题讨论】:

  • 您可以根据您使用的设备从代码中设置此边距动态,也可以创建一个自定义 UITableViewCell 以在所有设备上保持相同的布局

标签: ios uitableview ios-autolayout


【解决方案1】:

我已经找到了正确的解决方案:您必须使用基于大小类的约束值,如下所示:

您必须将默认约束值设置为 16,按常量字段旁边的小加号按钮,添加常规宽度 > 任意高度,然后在新字段中输入 20。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多