如何使用自动布局将UILabel设置为UICell宽度的百分比

我想知道如何设置UILabel的宽度表示为单元总宽度的百分比? 我正在使用AutoLayout。 通常,我会单击标签,并将EqualsWidth设置为一个父视图,然后调整乘数,所以我将宽度设置为parentWidth的百分比。 但是使用InterfaceBuilder这个选项在Cell中似乎不可用。 在这里输入图像说明

不过,我想知道它可能与设置首选宽度有关:我正在使用ios8 +,并已阅读隐式宽度不可用于ios8?

在这里输入图像说明

我希望实现的是标签1和标签3都是单元格的宽度的15%,标签2的前后边缘固定到UIImageView和标签3,这将允许它的增长和收缩取决于宽度的设备。 在这里输入图像说明

你应该做的步骤来实现你的目标,设置单元格内任何子视图的百分比宽度:

  1. 将UIView添加到您的单元格并将其固定到每个边缘 – 我们必须添加自定义容器视图,以便稍后能够添加“Widths equal”引脚。

  2. 将UILabel添加到以前添加的UIView容器。 可以说我们要添加左侧标签,所以添加3个针脚:左,上,下。

  3. 你现在可以看到你的约束设置有错误。 所以我们修复它,并添加“宽度均等”引脚。 在“视图控制器场景”菜单中select2个视图 – 容器和标签。 转到XcodeMenu / Editor / Pin /并select“Widths equal”。 现在,您应该在您的约束设置中看到没有错误,并且标签应该与容器具有相同的大小。 (请注意,有时你必须在设置约束后刷新视图的帧,所以如果你看到“黄色”警告图标不要害怕,只需点击它)。

  4. 现在,如果你有所有的限制,我们需要设置实际的百分比值。 打开“选项卡尺寸检查器”,单击步骤3中添加的约束上的“编辑”标题,并将乘数值更改为0.15(15%)。

请注意,如果您要使用相同的技术添加标签,但要求右侧,则需要将乘数值设置为6.66(= 1.00 / 0.15)。

干杯!

在这里输入图像说明

您可以设置宽度约束,然后在UITableView单元格中创build一个IBOutlet ,并在tableViewCell layoutSubView方法中更改constraint.constant