以编程方式向UITextField添加约束
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以编程方式向UITextField添加约束相关的知识,希望对你有一定的参考价值。
我正在学习自动布局而不使用StoryBoard。我给出了尾随,前导,顶部和底部的四个约束。
码:
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]];
TextField未出现在屏幕上。
错误:
Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
答案
你只是忘了这段代码:
[searchBarTF setTranslatesAutoresizingMaskIntoConstraints:NO];
默认情况下,这是True
。因此,您的约束与自动调整约束相冲突。
上面的行将禁用文本字段的自动调整大小,它将应用您定义的约束。
以上是关于以编程方式向UITextField添加约束的主要内容,如果未能解决你的问题,请参考以下文章
如何向放置在 UIStackView 中的以编程方式创建的 UIButton 添加约束