美文网首页iOS DeveloperiOS 开发
UITextField 重写方法 编辑文本的位置 显示文本的位置

UITextField 重写方法 编辑文本的位置 显示文本的位置

作者: 这样的我321 | 来源:发表于2016-04-01 16:51 被阅读499次

    #import@interface SJCTextField : UITextField

    -(id)initWithFrame:(CGRect)frame drawingLeft:(UIImageView*)icon;

    @end

    #import "SJCTextField.h"

    @implementation SJCTextField

    -(id)initWithFrame:(CGRect)frame drawingLeft:(UIImageView *)icon{

    self = [super initWithFrame:frame];

    if (self) {

    self.leftView = icon;

    self.leftViewMode = UITextFieldViewModeAlways;

    }

    return self;

    }

    -(CGRect)leftViewRectForBounds:(CGRect)bounds{

    CGRect iconRect = [super leftViewRectForBounds:bounds];

    iconRect.origin.x += 20;//

    return iconRect;

    }

    //控制placeHolder的颜色、字体

    - (void)drawPlaceholderInRect:(CGRect)rect

    {

    [[self placeholder] drawInRect:rect withAttributes:@{NSFontAttributeName:FONT_ROW_LABEL, NSForegroundColorAttributeName:COLOR_PLACEHOLDER}];

    }//控制编辑文本的位置

    -(CGRect)editingRectForBounds:(CGRect)bounds

    {

    CGRect inset = CGRectMake(bounds.origin.x+60, bounds.origin.y, bounds.size.width -10, bounds.size.height);

    return inset;

    }

    //控制显示文本的位置

    -(CGRect)textRectForBounds:(CGRect)bounds

    {

    CGRect inset = CGRectMake(bounds.origin.x+60, bounds.origin.y, bounds.size.width -10, bounds.size.height);

    return inset;

    }

    //控制placeHolder的位置,

    -(CGRect)placeholderRectForBounds:(CGRect)bounds

    {

    CGRect inset = CGRectMake(bounds.origin.x+60, bounds.origin.y+15, bounds.size.width-10, bounds.size.height);

    return inset;

    }

    @end

    相关文章

      网友评论

        本文标题:UITextField 重写方法 编辑文本的位置 显示文本的位置

        本文链接:https://www.haomeiwen.com/subject/obsylttx.html