我有一个以 100 开始宽度限制的网页。
当用户单击按钮时,我想将约束更改为:200。
我试过这个:
NSLayoutConstraint *constrain = [NSLayoutConstraint
constraintWithItem:self.webPage
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:self.webPage
attribute:NSLayoutAttributeWidth
multiplier:1
constant:100];
[self.webPage addConstraint:constrain];
但这抛出了这个异常:
“无法同时满足约束条件。”
有任何想法吗?
你有两个选择。
- 获取对原始约束的引用并更改
constant
200 部分
- 获取对原始约束的引用并将其从视图中删除,然后添加新约束
我会选择第一个选择。要获取参考,请添加@property
将约束添加到 viewController 并在创建时分配它。
如果您在 xib 或 Storyboard 中创建约束,则通过 IBOutlet 连接将该约束连接到您的代码,类似于连接 UILabel 时所做的操作。
然后您可以轻松调整约束的常数部分。
另外,您的约束可能应该更多地遵循以下原则:
NSLayoutConstraint *constraint = [NSLayoutConstraint
constraintWithItem:self.webPage
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1
constant:100];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)