我在我的视图控制器中创建了大约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;
我哪里出错了?
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;
}
}
试试这个。
你的代码应该工作,但它是漂亮的,如果你类型转换你的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];