我们如何在 ios 中使用 for 循环为 1 个或多个文本字段设置背景颜色
How can we set background color for 1 or more textfields using for loop in ios
在我的项目中,我在故事板上添加了“6”个以上的文本字段,它们是 "Email"、"name"、"Firstname"...等文本字段
现在我想使用 "For" 循环为所有这些文本字段设置背景颜色
是否可以使用for循环设置?
你完全可以像这样用代码来完成:
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
。
您可以在故事板中设置背景颜色。当您在情节提要中创建这些内容时,这是一种很好的做法。但是,如果您以编程方式创建这些文本字段,那么最好通过 for 循环以编程方式设置 BG 颜色。
如果您所有的文本字段都在同一个视图控制器中,只需在视图控制器的实现中添加:
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];
}
在我的项目中,我在故事板上添加了“6”个以上的文本字段,它们是 "Email"、"name"、"Firstname"...等文本字段
现在我想使用 "For" 循环为所有这些文本字段设置背景颜色
是否可以使用for循环设置?
你完全可以像这样用代码来完成:
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
。
您可以在故事板中设置背景颜色。当您在情节提要中创建这些内容时,这是一种很好的做法。但是,如果您以编程方式创建这些文本字段,那么最好通过 for 循环以编程方式设置 BG 颜色。
如果您所有的文本字段都在同一个视图控制器中,只需在视图控制器的实现中添加:
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];
}