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

时间:2013-06-13 10:26:08

标签: ios objective-c ipad

我在界面构建器中创建的视图控制器中有大约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;

我在哪里做错了?

2 个答案:

答案 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;

        }
 }

试试这个。这可以帮助你。