我如何可以自定义borderWidth的所有UITextField外观?

我正在尝试为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; 

不幸的是,外观代理不能在图层上工作,做你想做的事情,你应该inheritanceUITextField,并在layoutSubviews方法中(或在init中)

您可以将其应用于从UITextField扩展的类或您喜欢风格的任何UIControl

1.创build了UITextFieldextension并添加了以下代码:

 - (void)awakeFromNib{ self.layer.borderColor = [UIColor blueColor].CGColor; self.layer.borderWidth = 1.0f; } 

2.1在Code内创buildUITextField

现在,如果您在代码中创buildUITextField ,请#import UITextField的扩展名并创buildUITextField

2.2在Interface Builder创buildUITextField

如果在Interface Builder创buildUIButton ,请selectUITextField ,转到Identity Inspector并将创build的extension添加为UITextField class