一、让textField中的文字向右偏移一段距离
默认情况下,当向textField输入文字时,文字会紧贴在textField左边框上。可以通过设置textField的leftView,设置一个只有宽度的leftView.这样还不够,因为默认leftView是不显示的.还需要将leftViewMode设置为UITextFieldViewModeAlways.。
- self.ipTextField.leftView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 8, 0)];
- //设置显示模式为永远显示(默认不显示)
- self.ipTextField.leftViewMode = UITextFieldViewModeAlways;
二、只有底边的textField
只需要自定义- (void)drawRect:(CGRect)rect方法,在控件底部绘制一条线即可。
进一步需求:在可编辑状态下,改变底边的颜色。
* 在自定义的- (void)drawRect:(CGRect)rect方法中添加判断if (self.isFirstResponder),设置不同的底边颜色。
* 重写-(BOOL)becomeFirstResponder和-(BOOL)resignFirstResponder,调用[self setNeedsDisplay];方法,让系统调用- (void)drawRect:(CGRect)rect方法,并实现系统默认super方法。
* 绘制之前关闭系统的抗锯齿效果,可以让边框变实:
* CGContextRef context = UIGraphicsGetCurrentContext();
* CGContextSetShouldAntialias(context, NO);
三、添加手势不响应事件
- 必须要记得设置UITextField的属性userInteractionEnabled = YES;才能进行交互。(类似的还有UIImageView)
四、rightview位置太靠边缘的问题,下面方法可以让rightView向左偏移10
- 写一个类继承UITextField,重写这个方法:
- (CGRect) rightViewRectForBounds:(CGRect)bounds {
CGRect textRect = [super rightViewRectForBounds:bounds];
textRect.origin.x -= 10;
return textRect;
}
- (CGRect) rightViewRectForBounds:(CGRect)bounds {
- 这个方法简单一些:如果是UIImageView或者是UIButton,就把UIImageView或者UIButton的宽度,设成宽度比原来大20像素,然后加一句:imageView.contentMode = UIViewContentModeCenter;
五、取消UIView上所有的UITextField的焦点:
- [self.view endEditing:YES];
网友评论