使用乘数的 Swift 约束与尾随但不领先

Posted

技术标签:

【中文标题】使用乘数的 Swift 约束与尾随但不领先【英文标题】:Swift constraint using multiplier working with trailing but not leading 【发布时间】:2019-04-08 10:33:03 【问题描述】:

我有以下两个文本 Timer 约束工作正常。但是,当只使用前导约束对 Score 做同样的事情时,它就会卡住。

有人知道我错过了什么吗?

【问题讨论】:

【参考方案1】:

因为前导的值为零,与尾随 which = view width 不同,所以将乘数应用于零会导致零

你也可以使用 centerX / trailing

【讨论】:

为什么它也适用于常量为零的文本“Timer”? 因为定时器的前导值大于 0 ,所以它的前导可以受乘数的影响 那么我应该怎么做才能修复分数? 它将与屏幕宽度成比例向右移动,因为不同设备的 centerX 值不同【参考方案2】:

只需将 Score 的前导 Constrain 更改为 Superview.Trailing 而不是 Superview.Leading :

然后将Score约束乘数设置为6.27。 我很快就会用我所做的计算来更新答案。

更新:

Score.Leading 常数与 Superview.Traling 常数的乘数为: 乘数 = View.width / (View.width - View.width / 1.2)

在我的情况下,iPhone X 的视图宽度是 414

414 / 1.2 = 345

414 - 345 = 69

414 / 69 = 乘数

【讨论】:

以上是关于使用乘数的 Swift 约束与尾随但不领先的主要内容,如果未能解决你的问题,请参考以下文章

使用 ib action-Swift 删除尾随约束

Swift 中的尾随和前导约束以编程方式 (NSLayoutConstraints)

以编程方式更改中心 X / Y 的对齐约束的乘数

在锚上实际使用乘数可以吗?

swift:TableViewCell 在滚动之前不会更新约束

如何使用两个不同的乘数更改单个高度约束的乘数