2015-09-03 40 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約束相沖突。

上述行將禁用文本字段的自動調整大小,它將應用您定義的約束。