文档章节

UITextField使用解析

街角d咖啡店
 街角d咖啡店
发布于 2014/12/30 17:39
字数 480
阅读 10
收藏 0

UITextField 是用户交互的一个必备使用的控件,其使用频率较高。

1自定义UITextField

我们有时需要定制化UITextField对象的风格,可以添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围,甚至修改placeHolder颜色,字体。


– textRectForBounds:      //重写来重置文字区域

– drawTextInRect:         //改变绘文字属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super.

– placeholderRectForBounds:  //重写来重置占位符区域

– drawPlaceholderInRect:  //重写改变绘制占位符属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super

– borderRectForBounds:  //重写来重置边缘区域

– editingRectForBounds:  //重写来重置编辑区域

– clearButtonRectForBounds:  //重写来重置clearButton位置,改变size可能导致button的图片失真

– leftViewRectForBounds:

– rightViewRectForBounds:


通过– drawPlaceholderInRect:方法可改变placeHolder颜色、字体,请看代码:

首先定义一个类CustomTextField让它继承UITextField实现以下方法即可:

//控制清除按钮的位置

-(CGRect)clearButtonRectForBounds:(CGRect)bounds

{

   return CGRectMake(bounds.origin.x + bounds.size.width - 50, bounds.origin.y + bounds.size.height -201616);

}


//控制placeHolder的位置,左右缩20

-(CGRect)placeholderRectForBounds:(CGRect)bounds

{

    

    //return CGRectInset(bounds, 20, 0);

   CGRect inset = CGRectMake(bounds.origin.x+100, bounds.origin.y, bounds.size.width -10, bounds.size.height);//更好理解些

   return inset;

}

//控制显示文本的位置

-(CGRect)textRectForBounds:(CGRect)bounds

{

    //return CGRectInset(bounds, 50, 0);

    CGRect inset = CGRectMake(bounds.origin.x+190, 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;

    //return CGRectInset(bounds,50,0);

}


//控制placeHolder的颜色、字体

- (void)drawPlaceholderInRect:(CGRect)rect

{

    //CGContextRef context = UIGraphicsGetCurrentContext();

    //CGContextSetFillColorWithColor(context, [UIColor yellowColor].CGColor);

    [[UIColor orangeColorsetFill];

    

    [[self placeholderdrawInRect:rectwithFont:[UIFontsystemFontOfSize:20]];

}


© 著作权归作者所有

街角d咖啡店
粉丝 4
博文 26
码字总数 7866
作品 0
深圳
私信 提问
iOS 使用ASIHTTPRequest 手机归属地查询

使用ASI框架,必须先导入ASIHTTPRequest源文件和ASI依赖的框架,具体的怎么使用ASI可以google一下。 这里我使用的查询接口 http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/...

广州英趣科技
2013/08/04
1K
0
UITextField详解之一:UITextField基本属性

UITextField是IOS开发中用户交互中重要的一个控件,常被用来做账号密码框,输入信息框等。创建一个用于输入的UITextField其实很简单,在平时使用中,更多的是需要 UITextField和其他UI控件之...

hi-小疯疯
2016/01/23
174
0
通过自定义UITextField 设置 搜索框

UISearchBar因为不能满足项目需求进行了自定义UISearchBar 先实现功能,然后再进行封装 考虑使用UITextField进行自定义 出现了垂直方向的问题,查看UITextField的对齐方式,在UITextField的A...

云飞扬v5
2015/08/24
1K
0
UITextField常用属性

UITextField是我们经常用的之一但是常用的属性都很熟悉,有些不常用的我也总结下,例如下面的: UIImageView * myView = [[ UIImageView alloc]initWithImage:[UIImage imageNamed:@"face.p...

宇宙执政
2013/04/07
1K
0
UITextField的常见应用和其属性子控件的位置布局

首先,UITextField的主要特别特征就是会自动弹出键盘让你进行输入信息,因此,很多关于弹出键盘的问题,优先想到是使用UITextField的inputView的inputView和inputAccessoryView(这个一般使用...

奋斗的青春年华
2016/07/04
14
0

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
今天
7
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部