AutoLayout:在代码中居中两个视图导致约束异常?

时间:2013-03-22 22:34:24

标签: ios objective-c xcode cocoa-touch autolayout

简短版本:创建NSLayoutAttributeCenterX约束始终会导致约束失败。为什么呢?

我有一个UITextField子类,其行为与搜索文本框相同。您点击该框并显示项目列表,项目将按您键入的内容进行过滤。像这样:

enter image description here

UITextField子类负责创建和显示项目视图。列表的中心应与文本字段的中心匹配。所以,我设置了这样的约束:

NSLayoutConstraint *hugCenter = 
   [NSLayoutConstraint constraintWithItem:self.searchContainerView
                                attribute:NSLayoutAttributeCenterX
                                relatedBy:NSLayoutRelationEqual
                                   toItem:self
                                attribute:NSLayoutAttributeCenterX
                               multiplier:1.0
                                 constant:0.0];

这总是会导致错误:

  

将尝试通过违反约束来恢复   NSLayoutConstraint:0x9a5e1a0 UIView:0x9a5ba40.centerX ==   SearchTextField:0x7154a40.centerX

为了测试我让我的场景尽可能简单 - 视图控制器上的1个文本字段:

enter image description here

为什么会导致约束错误?

1 个答案:

答案 0 :(得分:0)

你错过了setTranslatesAutoresizingMaskIntoConstraints:吗?