设置文本字段数组的边框颜色



我在我的视图控制器中创建了大约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];

最新更新