如何在ios中使用for循环为1个或多个文本字段设置背景颜色

时间:2015-10-07 10:18:57

标签: ios objective-c uitextfield

在我的项目中,我在上面添加" 6"在我的故事板上的文本字段,它们是"电子邮件","名称","名字" ...等文本字段

现在我想使用" For"为所有这些文本字段设置背景颜色。环

是否可以使用for循环设置?

3 个答案:

答案 0 :(得分:2)

你可以纯粹用这样的代码来做:

NSArray *textFields = @[self.emailTextField, self.nameTextField, self.firstNameTextField ... etc];
for (UITextField *textField in textFields) {
    textField.backgroundColor = [UIColor redColor];
}

或者,您可以在故事板中创建IBOutletCollection,并将所有文本字段连接到视图控制器上的单个属性:

@interface MyViewController : UIViewController

@property (nonatomic, strong) IBOutletCollection(UITextField) NSArray *textFields;

@end

然后以与我的第一个例子类似的方式迭代self.textFields

答案 1 :(得分:0)

您可以在故事板中设置背景颜色。当你在故事板中创建那些是很好的做法。但是如果你以编程方式创建那些文本字段,那么通过for循环以编程方式设置BG颜色将是一种好习惯。

答案 2 :(得分:0)

如果所有文本字段都在同一个视图控制器中,只需在视图控制器的实现中添加:

for (UITextField *textField in self.view.subviews) {
if ([textField isKindOfClass:[UITextField class]]) {
  textField.backgroundColor = [UIColor exampleColor];
 }
}

如果它们不在同一个视图控制器中,则将所有视图控制器添加到一个数组中并从那里执行:

NSArray *array = @[emailField, nameField, etc...]
    for (UITextField *textField in array)
textField.backgroundColor = [UIColor exampleColor];
}