iOS – 为UITextField实现一个类

我有一个UIView ,有很多的UITexfields

 UITextField *field1 = [[UITextField alloc] initWithFrame:CGRectMake(135, 292, 50, 20)]; field1.backgroundColor = [UIColor clearColor]; field1.borderStyle = UITextBorderStyleNone; field1.returnKeyType = UIReturnKeyNext; field1.contentVerticalAlignment = UIControlContentVerticalAlignmentBottom; field1.font = [UIFont fontWithName:inputFont size:fontSize]; field1.placeholder = @"size"; [self addSubview:field1]; 

我可以创build一个UITextField类并使用这些参数预设创build此类的一个实例吗? – 为了减less代码:(如果我有很多领域的代码变得非常长,重复?

我可以得到一些关于如何设置这个类的帮助! -谢谢

是的,你可以做一个BaseUITextFeild .h.m文件,如下图所示。 在这里输入图像说明

在这里输入图像说明

然后在BaseUITextFeild.m文件中添加下面关于你的devise的代码

 - (void)awakeFromNib { [self setupUI]; [self setKeyboardAppearance:UIKeyboardAppearanceAlert]; } // Function to setup the common UI throught the app. - (void)setupUI { [self setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter]; [self setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter]; [self setTextAlignment:NSTextAlignmentCenter]; [self setValue:[UIColor colorWithRed:120.0/225.0 green:120.0/225.0 blue:120.0/225.0 alpha:1.0] forKeyPath:@"_placeholderLabel.textColor"]; [self setFont:[UIFont boldSystemFontOfSize:15.0f]]; } 

以编程方式生成自定义UITextField
然后只要在ViewController import "BaseUITextFeild.h"就可以使用它。

 BaseUITextFeild *field1 = [[BaseUITextFeild alloc] initWithFrame:CGRectMake(135, 292, 50, 20)]; [self addSubview:field1]; 

从Interface Builder(Storyboard / .XIB)生成自定义UITextField
添加一个UITextfield,然后只是将类更改为您的自定义TextView类。 在这里输入图像说明

通过应用以下技术,您可以通过应用程序使用这个相同的UITextFeild ,只需要import BaseUITextFeild.h

你也可以使用这个UITextFieldCategory

按照这两个示例UITextField + withFrame.h和UITextField + ColoredPlaceholder.h 。 你也可以根据你的需要定制你的UITextField

创build一个方法

 -(UITextField*)createTextFieldWithFrame:(CGRect)frame{ UITextField *textField = [[UITextField alloc] initWithFrame:frame]; textField.backgroundColor = [UIColor clearColor]; textField.borderStyle = UITextBorderStyleNone; textField.returnKeyType = UIReturnKeyNext; textField.contentVerticalAlignment = UIControlContentVerticalAlignmentBottom; textField.placeholder = @"size"; [self.view addSubview:textField]; return textField; } 

为创build多个文本字段调用此方法

 UITextField *text1 = [self createTextFieldWithFrame:CGRectZero]; UITextField *text2 = [self createTextFieldWithFrame:CGRectZero]; 

您可以创build一个自定义的xib ,并根据需要创buildUITextField ,并在每次需要时重新使用它。

或者你可以UITextField并在里面做额外的设置。