我只是试图在textViewDidBeginEditing中禁用一个约束,而在textViewDidEndEditing中禁用一个约束。
我的NSLayoutConstraint是一个插座。textViewDidBeginEditing中的失活可以工作,但是textViewDidEndEditing上的重新激活会为约束找到0。
我已经在.isActive实例值以及NSLayoutConstraint.activate/deactivate函数中尝试了这一点。
,答案,,我和Vasil的答案一起玩过,但这不管用,因为他只是建议0和1000。来自文件:
优先级不得从不需要更改为要求,也不得从要求更改为不需要。如果将OS X中的
NSLayoutPriorityRequired或iOS中的UILayoutPriorityRequired的优先级更改为较低的优先级,或者在将约束添加到视图后将较低的优先级更改为所需的优先级,则会引发异常。即使在视图上安装约束之后,也允许从一个可选优先级更改为另一个可选优先级。
因此,我必须首先改变我在IB中的优先级,使之成为其他的东西(我选择了750 - High),然后在不需要的时候将它切换到250,并创建了第二个约束,该约束与第一个约束相冲突,后者在任何时候都有500个优先级(做其他事情),这使我得到了我想要的行为。
根据上面的文档,由于不需要High,我应该能够切换到0,但这仍然会导致崩溃,所以我一定读错了。因此,为什么我要做第二件约束的事情。
发布于 2017-07-22 12:43:25
您可以尝试更改约束的优先级。例如:
constraint.priority = 0; // it's turn off
constraint.priority = 1000; // it's turn onhttps://stackoverflow.com/questions/45249502
复制相似问题