自定义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];

你可能感兴趣的:(UITextField)