无法在 iOS 中垂直添加文本字段?
Posted
技术标签:
【中文标题】无法在 iOS 中垂直添加文本字段?【英文标题】:Unable to add textfields vertically in iOS? 【发布时间】:2016-03-19 11:39:21 【问题描述】:我已经通过故事板垂直添加了一些文本字段。在它们下面我想以编程方式添加更多文本字段,但它总是只添加一个文本字段。
下面是使用的代码
int i;
self.main_view.translatesAutoresizingMaskIntoConstraints = NO;
self.scroll_view.translatesAutoresizingMaskIntoConstraints = NO;
for (i=0; i<[arr_customEdtTxt count]; i++)
JVFloatLabeledTextField *tf = [[JVFloatLabeledTextField alloc] initWithFrame:CGRectMake(25, y, 270, 27)];
tf.textColor = [UIColor blackColor];
tf.font = [UIFont fontWithName:@"Helvetica" size:14];
CustomEditText *custom=[arr_customEdtTxt objectAtIndex:i];
tf.placeholder=custom.field_name;
tf.textAlignment=NSTextAlignmentLeft;
previousTextfield=tf;
//add bottom border
[self addBorder:tf];
tf.translatesAutoresizingMaskIntoConstraints = NO;
[self.main_view addSubview:tf];
y=y+27;
[self.main_view addConstraint:[NSLayoutConstraint constraintWithItem:tf attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.main_view attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:0] ];
[self.main_view addConstraint:[ NSLayoutConstraint constraintWithItem:tf
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeHeight
multiplier:1.0
constant:27.0]];
[self.main_view addConstraint:[ NSLayoutConstraint constraintWithItem:tf
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:self.txt_email
attribute:NSLayoutAttributeWidth
multiplier:1.0
constant:0]];
if(i==0)
[self.main_view addConstraint:[NSLayoutConstraint constraintWithItem:tf attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.txt_exprience attribute:NSLayoutAttributeBottom multiplier:1 constant:15.0f]];
else
[self.main_view addConstraint:[NSLayoutConstraint constraintWithItem:tf attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:previousTextfield attribute:NSLayoutAttributeBottom multiplier:1 constant:15.0f]];
[arr_tf addObject:tf];
[self.main_view layoutIfNeeded];
[self setDatatoFields];
我收到约束错误我想在当前文本字段下方添加更多文本字段。请告诉我如何在下面添加越来越多的文本字段
【问题讨论】:
【参考方案1】:看起来previousTextfield
和tf
在这一行中引用了相同的文本字段:
[self.main_view addConstraint:[NSLayoutConstraint constraintWithItem:tf attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:previousTextfield attribute:NSLayoutAttributeBottom multiplier:1 constant:15.0f]];
我还注意到,最后您将 textField 添加到 arr_tf
,但您也有 arr_customEdtTxt
,这取决于您的 textField 数组中的哪一个,您应该将 previousTextfield = tf
更改为:
if(i > 0)
//Change arr_tf for arr_customEdtTxt if that is your array
previousTextfield = [arr_tf objectAtIndex:i-1];
【讨论】:
以上是关于无法在 iOS 中垂直添加文本字段?的主要内容,如果未能解决你的问题,请参考以下文章
在水平堆栈视图(自动布局)中将文本与图像垂直居中 - iOS
iOS 8 Today Extension:是否可以添加可编辑的文本字段?