首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSLayoutConstraint激活/停用

NSLayoutConstraint激活/停用
EN

Stack Overflow用户
提问于 2017-07-22 00:41:15
回答 1查看 639关注 0票数 0

我只是试图在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,但这仍然会导致崩溃,所以我一定读错了。因此,为什么我要做第二件约束的事情。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-22 12:43:25

您可以尝试更改约束的优先级。例如:

代码语言:javascript
复制
constraint.priority = 0;    // it's turn off
constraint.priority = 1000; // it's turn on
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45249502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档