0

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

我在哪里做错了?

4

2 回答 2

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];
于 2013-06-13T10:31:21.993 回答
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;

        }
 }

试试这个。愿这对你有帮助。

于 2013-06-13T10:31:38.143 回答