textField带下划线,改变clearButton图片

给textField都增加下划线

想法:

1、textField下边创建一个height为1的view,填充自己想要的颜色;

2、继承textField,重写textField的drawRect方法;

这里实现第二种方法

- (void)drawRect:(CGRect)rect {

         // Drawing code

        CGContextRef  context =UIGraphicsGetCurrentContext();   

        //设置下划线颜色

        [RGB(206,210,214)  set];

        CGFloaty =CGRectGetHeight(self.frame);

       //设置起点

        CGContextMoveToPoint(context,0, y);

        //设置终点

        CGContextAddLineToPoint(context,CGRectGetWidth(self.frame), y);

        //设置线的宽度

        CGContextSetLineWidth(context,2);

        //渲染显示到self上

        CGContextStrokePath(context);

其中关于CGContextRefcontext,可自行了解;

改变rightView

系统自带的clearButton虽然好用,但是样子难看,于是上代码

UIButton *button = [textField valueForKey:@"_clearButton"];

//下面两句话保证点击前和点击后按钮是一致的

[button setImage:[UIImage imageNamed:@"clear"] forState:UIControlStateNormal];

[button setImage:[UIImageimageNamed:@"clear"] forState:UIControlStateHighlighted];

field.clearButtonMode = UITextFieldViewModeWhileEditing;

如果你需要多处用到,也可以写到继承的drawRect方法里

你可能感兴趣的:(textField带下划线,改变clearButton图片)