我在界面构建器中创建的视图控制器中有大约30个UITextField
(IBOutlet)。
现在我想设置所有这些UITextField
的边框颜色和边框宽度。
以下是我正在尝试的代码,但它没有发生。
for (UIView *subView in self.view.subviews) {
if ([subView isKindOfClass:[UITextField class]]) {
[[subView layer] setBorderColor:[[UIColor colorWithRed:171.0/255.0 green:171.0/255.0 blue:171.0/255.0 alpha:1.0] CGColor]];
subView.layer.borderWidth= 1.0f;
}
}
但如果我单独对每个对象进行更改,则会发生变化。
[[textfieldOne layer] setBorderColor:[[UIColor colorWithRed:171.0/255.0 green:171.0/255.0 blue:171.0/255.0 alpha:1.0] CGColor]];
textfieldOne.layer.borderWidth= 1.0f;
我在哪里做错了?
答案 0 :(得分:2)
你的代码应该可行,但是如果你对你的UIView
进行类型转换它会更漂亮(不是我看到它会产生多大的影响)。试试这个
for (UIView *subView in self.view.subviews) {
if ([subView isKindOfClass:[UITextField class]]) {
UITextField *aTextField = (UITextField *)subView;
[[aTextField layer] setBorderColor:[[UIColor colorWithRed:171.0/255.0 green:171.0/255.0 blue:171.0/255.0 alpha:1.0] CGColor]];
aTextField.layer.borderWidth = 1.0f;
}
}
另请注意;尽量不要将点符号与括号混合,因为它会使代码非常不一致。选择一个并坚持下去。
点符号
aTextField.layer.borderColor = [[UIColor colorWithRed:171.0/255.0 green:171.0/255.0 blue:171.0/255.0 alpha:1.0] CGColor];
aTextField.layer.borderWidth = 1.0f;
支架
[[aTextField layer] setBorderColor:[[UIColor colorWithRed:171.0/255.0 green:171.0/255.0 blue:171.0/255.0 alpha:1.0] CGColor]];
[[aTextField layer] setBorderWidth:1.0f];
答案 1 :(得分:2)
for (UITextField *subView in self.view.subviews) {
if ([subView isKindOfClass:[UITextField class]]) {
[[subView layer] setBorderColor:[[UIColor colorWithRed:171.0/255.0 green:171.0/255.0 blue:171.0/255.0 alpha:1.0] CGColor]];
subView.layer.borderWidth= 1.0f;
}
}
试试这个。这可以帮助你。