自定义textFeild

原创 2015年11月18日 19:30:03

#import <UIKit/UIKit.h>


@interface NDTextFieldPadding : UITextField

{

    BOOL isEnablePadding;

    float paddingLeft;

    float paddingRight;

    float paddingTop;

    float paddingBottom;

}


+ (NDTextFieldPadding *) createRightAngleRectTextFieldWithFont:(UIFont *)font;

+ (NDTextFieldPadding *) createRightAngleRectTextFieldWithFont:(UIFont *)font textAlignment:(NSTextAlignment)textAlignment;


+ (NDTextFieldPadding *) createRoundTextFieldWithFont:(UIFont *)font;

+ (NDTextFieldPadding *) createRoundTextFieldWithFont:(UIFont *)font textAlignment:(NSTextAlignment)textAlignment;


- (void)setPadding:(BOOL)enable top:(float)top right:(float)right bottom:(float)bottom left:(float)left;


@end

#import "NDTextFieldPadding.h"


@implementation NDTextFieldPadding

#pragma mark - 类方法


+ (NDTextFieldPadding *) createRightAngleRectTextFieldWithFont:(UIFont *)font

{

    return [NDTextFieldPadding createRightAngleRectTextFieldWithFont:font textAlignment:NSTextAlignmentNatural];

}


+ (NDTextFieldPadding *) createRightAngleRectTextFieldWithFont:(UIFont *)font textAlignment:(NSTextAlignment)textAlignment

{

    NDTextFieldPadding *tf = [[NDTextFieldPadding alloc] init];

    tf.textColor = [UIColor blackColor];

    tf.borderStyle = UITextBorderStyleNone;

    tf.clearButtonMode = UITextFieldViewModeWhileEditing;

    tf.textAlignment = textAlignment;

    tf.font = font;

    tf.layer.borderWidth = kSeparatorLineWidth;

    tf.layer.borderColor = kSubColor.CGColor;

    return tf;

}


+ (NDTextFieldPadding *) createRoundTextFieldWithFont:(UIFont *)font

{

    return [NDTextFieldPadding createRoundTextFieldWithFont:font textAlignment:NSTextAlignmentNatural];

}


+ (NDTextFieldPadding *) createRoundTextFieldWithFont:(UIFont *)font textAlignment:(NSTextAlignment)textAlignment;

{

    NDTextFieldPadding *tf = [[NDTextFieldPadding alloc] init];

    tf.backgroundColor = kTextFieldFillColor;

    tf.textColor = kLoginHeavyColor;

    tf.borderStyle = UITextBorderStyleNone;

    tf.clearButtonMode = UITextFieldViewModeWhileEditing;

    tf.textAlignment = textAlignment;

    tf.font = font;

    tf.layer.masksToBounds = YES;

    tf.layer.borderWidth = kSeparatorLineWidth;

    tf.layer.borderColor = kLoginColor.CGColor;

    return tf;

}


#pragma mark - 实例方法

- (void)setPadding:(BOOL)enable top:(float)top right:(float)right bottom:(float)bottom left:(float)left {

    isEnablePadding = enable;

    paddingTop = top;

    paddingRight = right;

    paddingBottom = bottom;

    paddingLeft = left;

}


#pragma mark - 重写

- (CGRect)textRectForBounds:(CGRect)bounds {

    if (isEnablePadding) {

        return CGRectMake(bounds.origin.x + paddingLeft,

                          bounds.origin.y + paddingTop,

                          bounds.size.width - paddingRight, bounds.size.height - paddingBottom);

    } else {

        return CGRectMake(bounds.origin.x, bounds.origin.y, bounds.size.width, bounds.size.height);

    }

}


- (CGRect)editingRectForBounds:(CGRect)bounds {

    return [self textRectForBounds:bounds];

}


@end




相关文章推荐

easyUI中combobox中idFeild和textFeild的取值方法

easyUI中combobox是比较常用的选择数据的方式,在官方的API说明中是这样描述的:扩展自 $.fn.combo.defaults。使用 $.fn.combobox.defaults重写默认值...

自定义View的详细流程代码

  • 2017年11月20日 14:16
  • 8.98MB
  • 下载

qt5音乐播放器自定义解码

  • 2017年11月09日 15:10
  • 1.29MB
  • 下载

Android 自定义Spinner字体、颜色、大小

昨天在公司项目中遇到Spinner颜色,字体,大小的困惑。所以今天也总结一下这方面知识。这个其实很简单,要改变字体,颜色以及大小,无非就是不要用系统自带的样式。自已例外写一个layout调用就行了。我...

TV中自定义的软键盘

  • 2017年11月17日 10:31
  • 1.95MB
  • 下载

Android 刮刮卡效果 自定义控件实现

  • 2017年11月17日 10:57
  • 4.67MB
  • 下载

[动手学android] 自定义View-1

自己动手写代码是学习编程的最好方式。接下来我通过一个小例子来学习如何创建简单的自定义view。这次的例子是组合view。需要实现的是类似名片的view,如下图所示。...

【Android自定义View实战】之仿百度加载动画,一种优雅的Loading方式

【Android自定义View实战】之仿百度加载动画,一种优雅的Loading方式 无意中看到了百度的加载动画,看起来非常优雅,打算亲手造一个。 仿百度加载动画的重要思路:当第一遍执行完毕后就让...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自定义textFeild
举报原因:
原因补充:

(最多只允许输入30个字)