我正在尝试创建一个自定义类,它基本上会在我的UITextField上创建一个底部边框。问题是我将有多个带下划线的UITextField,而不是重复的代码,我想我创建了一个自定义类。这是代码:
CALayer *border = [CALayer layer];
CGFloat borderWidth = 2;
border.borderColor = [UIColor whiteColor].CGColor;
border.frame = CGRectMake(0, self.emailTextField.frame.size.height - borderWidth, self.emailTextField.frame.size.width, self.emailTextField.frame.size.height);
border.borderWidth = borderWidth;
[self.emailTextField.layer addSublayer:border];
self.emailTextField.layer.masksToBounds = YES;
如何不必一遍又一遍地重写代码,我将如何复制它?
答案 0 :(得分:1)
最简单的方法是创建一个方法并传递您想要更改的文本字段:
-(void)addBorderLayer:(UITextField*)tf{
CALayer *border = [CALayer layer];
CGFloat borderWidth = 2;
border.borderColor = [UIColor whiteColor].CGColor;
border.frame = CGRectMake(0, tf.frame.size.height - borderWidth, tf.frame.size.width, tf.frame.size.height);
border.borderWidth = borderWidth;
[tf.layer addSublayer:border];
tf.layer.masksToBounds = YES;
}
你可以这样称呼:
[self addBorderLayer:self.emailTextField];
[self addBorderLayer:self.anotherTextField];
另一个解决方案是创建继承自UITextField的自定义类,或者您可以向UITextField添加扩展以修改自身。