2015-09-03 44 views
0

我正在学习不使用StoryBoard的自动布局。我已经给出了拖尾,领先,顶部和底部的四个约束。以编程方式向UITextField添加约束条件

代码:

UITextField *searchBarTF=[[UITextField alloc]init]; 
[searchBarTF setText:@"is it coming?"]; 
[views addSubview:searchBarTF]; 

[views addConstraint:[NSLayoutConstraint constraintWithItem:searchBarTF attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:views attribute:NSLayoutAttributeLeading multiplier:1.0 constant:30]]; 

[views addConstraint:[NSLayoutConstraint constraintWithItem:searchBarTF attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:views attribute:NSLayoutAttributeTrailing multiplier:1.0 constant:30]]; 

[views addConstraint:[NSLayoutConstraint constraintWithItem:searchBarTF attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:views attribute:NSLayoutAttributeTop multiplier:1.0 constant:30]]; 

[views addConstraint:[NSLayoutConstraint constraintWithItem:searchBarTF attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:views attribute:NSLayoutAttributeBottom multiplier:1.0 constant:230]]; 

文本字段没有出现在屏幕上。

错误:

Unable to simultaneously satisfy constraints. 
    Probably at least one of the constraints in the following list is one you don't want. 
+0

能否请你分享你错误列表。同时,只需setTranslateAutoResizingMaskIntoConstraints:对于searchBarTF即可 –

回答

3

你刚才忘了这一小段代码:。

[searchBarTF setTranslatesAutoresizingMaskIntoConstraints:NO]; 

默认情况下,这是True。所以你的约束与Autoresizing约束相冲突。

上述行将禁用文本字段的自动调整大小,它将应用您定义的约束。