我如何为borderWidth自定义所有UITextField外观?

时间:2014-12-10 14:50:10

标签: ios objective-c uitextfield calayer appearance

我正在尝试为borderWith定制所有UITextField外观。

尝试这样的事情。 只有前两行才有所作为。 其余的线路不起作用?

[[UITextField appearance] setBackgroundColor:[UIColor greenColor]];
[[UITextField appearance] setTextColor:[UIColor blackColor]];
[UITextField appearance].layer.cornerRadius = 6.0f;
[UITextField appearance].layer.borderColor = [UIColor redColor].CGColor;
[UITextField appearance].layer.borderWidth = 3.f;

2 个答案:

答案 0 :(得分:5)

您可以将其应用于从UITextField或您想要设置的任何UIControl扩展的类。

1。创建了extension UITextField并添加了以下代码:

- (void)awakeFromNib{

    self.layer.borderColor = [UIColor blueColor].CGColor;
    self.layer.borderWidth = 1.0f;
}

2.1在代码

中创建UITextField

现在,如果您在代码中创建了UITextField#import UITextField的扩展名,则创建UITextField

2.2在Interface Builder

中创建UITextField

如果您在UIButton内创建Interface Builder,请选择UITextField,转到Identity Inspector并将创建的extension添加为class } UITextField

答案 1 :(得分:1)

不幸的是,外观代理在图层上不起作用,你想要你应该继承UITextField并在layoutSubviews方法(或在init)中进行自定义