gpt4 book ai didi

ios - NSAutolayoutConstraint - 在乘数之前应用常量

转载 作者:行者123 更新时间:2023-11-28 06:18:32 25 4
gpt4 key购买 nike

如今,multiplier 属性是只读的。要更改它,您必须删除约束并创建一个新约束。

let newConstraint = NSLayoutConstraint(
item: constraint.firstItem,
attribute: constraint.firstAttribute,
relatedBy: constraint.relation,
toItem: constraint.secondItem,
attribute: constraint.secondAttribute,
multiplier: newMultiplier,
constant: constraint.constant
)

在此示例中,首先应用乘数,然后应用常量。例如:

假设它是父 View 的宽度限制。

这意味着我们将有 view.width = superview.width * multiplier - 2。(这也意味着 multiplier = 0 会中断)。

我需要的是view.width = (superview.width - 2) * multiplier。我如何创建这样的约束?

我也不想做这样的事情:

let newConstraint = NSLayoutConstraint(
item: constraint.firstItem,
attribute: constraint.firstAttribute,
relatedBy: constraint.relation,
toItem: constraint.secondItem,
attribute: constraint.secondAttribute,
multiplier: newMultiplier,
constant: constant * newMultiplier
)

因为我最终丢失了 Storyboard中的 constraint.constant

最佳答案

为什么要更改乘数值?改为更改常量值..

在类中声明

var yourViewWidthConstraint: NSLayoutConstraint?

实例化这个约束

yourViewWidthConstraint = yourView.widthAnchor.constraint(self.view.widthAnchor)
yourViewWidthConstraint?.isActive = true

现在,在任何地方更改yourViewWidthConstraint.constant..

关于ios - NSAutolayoutConstraint - 在乘数之前应用常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44375592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com