自定义UITextField(UITextField重写)

//  CustomField.h
#import <UIKit/UIKit.h>
@interface CustomField : UITextField @end
//  CustomField.m


#import "CustomField.h"

@implementation CustomField

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
    return self;
}

/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
 */
- (void)drawRect:(CGRect)rect
{
    // Drawing code
}
 
 -(CGRect)clearButtonRectForBounds:(CGRect)bounds
 {
 return CGRectMake(bounds.origin.x +bounds.size.width - 40,bounds.origin.y+bounds.size.height/2-16/2, 16, 16);
 }
 //bounds.size.height -20
 //控制placeHolder的位置,左右缩20
 -(CGRect)placeholderRectForBounds:(CGRect)bounds
 {
 //return CGRectInset(bounds,20, 0);
 CGRect inset= CGRectMake(bounds.origin.x+10, bounds.origin.y+5, bounds.size.width -10, bounds.size.height);
 return inset;
 }
 //控制显示文本的位置
 -(CGRect)textRectForBounds:(CGRect)bounds
 {
 CGRect inset= CGRectMake(bounds.origin.x+10, bounds.origin.y, bounds.size.width -10, bounds.size.height);//更好理解些
 
 return inset;
 
 }
 //控制编辑文本的位置
 -(CGRect)editingRectForBounds:(CGRect)bounds
 {
 //return CGRectInset(bounds, 10 , 0 );
 
 CGRect inset= CGRectMake(bounds.origin.x +10, bounds.origin.y, bounds.size.width -10, bounds.size.height);
 return inset;
 }
 //控制左视图位置
 - (CGRect)leftViewRectForBounds:(CGRect)bounds
 {
 CGRect inset= CGRectMake(bounds.origin.x +10, bounds.origin.y, bounds.size.width-250, bounds.size.height);
 return inset;
 //returnCGRectInset(bounds,50,0);
 }

- (CGRect)rightViewRectForBounds:(CGRect)bounds;
{
    CGRect inset= CGRectMake(bounds.origin.x +bounds.size.width-30, bounds.origin.y+bounds.size.height/2-10,20,20);
    return inset;
}

 //控制placeHolder的颜色、字体
 - (void)drawPlaceholderInRect:(CGRect)rect
 {
 //CGContextRef context =UIGraphicsGetCurrentContext();
 //CGContextSetFillColorWithColor(context,[UIColor yellowColor].CGColor);
 [[UIColor brownColor] setFill];
 
 [[self placeholder] drawInRect:rect withFont:[UIFont systemFontOfSize:18]];
   
 }
@end
 

//  使用方法,在XXXViewController里导入#import "CustomField.h"

   CustomField  *myField=[[CustomField  alloc]init];
原文地址:https://www.cnblogs.com/huluo666/p/3524199.html