背景:--我正在使用接口生成器构建一个论坛,其中视图控制器中有一个表视图,外部有一个输入附件视图。在运行时,输入附件视图将被添加到表视图中,并成为一个类似信使的输入条。

我试图通过更改高度约束来实现输入附件视图上的自动调整功能(通常在消息传递应用程序中可以看到)。但是,无法在接口构建器中创建输入附件视图的高度约束,所以我只是在代码中添加了它们。
NSLayoutConstraint *inputAccessoryConstraint = [NSLayoutConstraint constraintWithItem:self.inputAccessoryView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil attribute:NSLayoutAttributeNotAnAttribute
multiplier:1.0
constant:100];
[self.inputAccessoryView addConstraint:inputAccessoryConstraint];并收到以下警告:
Unable to simultaneously satisfy constraints.
...
(
"<NSLayoutConstraint:0x7fa5a413f450 V:[UIView:0x7fa5a264f8d0(100)]>",
"<NSLayoutConstraint:0x7fa5a2483890 '_UIKBAutolayoutHeightConstraint' V:[UIView:0x7fa5a264f8d0(44)]>"
)问题是,我的新约束与运行时中添加的一个autolayout约束相冲突。如何删除/修改代码中的autolayout约束?
发布于 2014-11-07 14:52:03
在添加您的(100)之前,您可能希望删除现有的高度约束(44)。但是,您也可以只编辑现有的约束:
下面的块是浏览inputAccessoryView的约束并找到高度约束。然后将值设置为100,而不是44。
for (NSLayoutConstraint* constraint in YOURINPUTACCESSORYVIEW.constraints) {
if ([NSStringFromClass([NSLayoutConstraint class]) isEqualToString:NSStringFromClass([constraint class])])
{
if (constraint.firstAttribute == NSLayoutAttributeHeight || constraint.secondAttribute == NSLayoutAttributeHeight)
{
constraint.constant = 100;
}
}
}https://stackoverflow.com/questions/26802750
复制相似问题