如何在不对每个小部件进行编码的情况下制作自己的 UITextField 样式

How make own style of UITextField without coding of each widget

我希望屏幕上的所有 TextField 元素都具有红色边框、一些阴影等。 对于一个 TextField,我可以在控制器代码中设置此参数。制作插座并设置所有参数。 但是如何在之前设置所有这些参数的情况下制作自己的文本字段,而不需要为每个文本字段手册实例设置它?

谢谢。

给你:

class MySuperDuperTextField: UITextField {
     override func awakeFromNib() { // if you're not using Storyboards, you should override initWithFrame: or come up with your own init
         // stylize here...
         layer.borderColor = .redColor().CGColor // red border
     }
}

处理阴影的方法有很多种,您最好查找并选择适合您的解决方案。

您也许应该创建一个扩展程序 class 并在其中放置您的每个不同的文本字段,它们将可以在您的任何地方重复使用 #import "UITextField+Extensions.h"

UITextField+扩展.h文件

@interface UIColor (SPQExtensions)

+(UITextField *)shadowTextFieldWithFrame:(CGRect)frame;

@end

UITextField+扩展.m文件

@implementation UITextField (Extensions)

+(UITextField *)shadowTextFieldWithFrame:(CGRect)frame
{
    UITextField *textfield = [[UITextField alloc]initWithFrame:frame];

    // rest of your setup code

    return textfield;
}

@end