UITextField设置padding

转载 2015年07月07日 17:42:27

有时为了美化UITextField样式会使用自定义背景图片而将本身的边框隐藏,这时基本上光标的位置都不会很合适,而UITextField默认不可以设置padding,咱们可以自定义一个子类实现padding。

//
//  UITextFieldEx.h
//

#import <Foundation/Foundation.h>

@interface UITextFieldEx : UITextField {
    
    BOOL isEnablePadding;
    float paddingLeft;
    float paddingRight;
    float paddingTop;
    float paddingBottom;
    
}

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

@end
//  UITextFieldEx.m

#import "UITextFieldEx.h"

@implementation UITextFieldEx

- (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;
}

- (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

调用方法:

UITextFieldEx *iptMsg = [[UITextFieldEx alloc]initWithFrame:CGRectMake(20, 25, 331, 46)];
[iptMsg setPadding:YES top:12 right:18 bottom:12 left:10];
iptMsg.borderStyle = UITextBorderStyleNone;
UIColor *iptMsgBg = [[UIColor alloc]initWithPatternImage:[UIImage imageNamed:@"chat_bottom_textfield.png"]];
iptMsg.backgroundColor = iptMsgBg;
[self.view addSubview:iptMsg];3333

关于iOS 6.0 以后设置UITextField的左侧图片、文字居中(占位符的位置)

关于iOS 6.0 以后设置UITextField的左侧图片、文字居中(占位符的位置) 通常想实现下面几点: 1、左边显示图片 2、textField中添加默认的占位符(提示文字),并且希望占位符和左...
  • WDJzf
  • WDJzf
  • 2015年11月30日 08:29
  • 3230

UITextField 设置左右视图、文字距离及字符长度限制

UITextField 是iOS开发中的一个常用控件。并伴有左右视图的提示。 比如一个登陆界面, 需要我们输入用户名及密码, 这是多数app的常见模式了。  这样的界面, 左边, 可以是一个userN...
  • svendson
  • svendson
  • 2016年06月08日 10:29
  • 2345

【iOS开发-15】UITextField常用属性归纳:文本框样式、文字样式、键盘样式、左右视图样式、清除按钮设置等

(1)可以根据需要设置文本框的样式(包括形状、边框颜色、背景等) (2)可以根据需要设置文字显示样式(包括输入密码时的密文显示、文字横向居中、纵向居中上下、输入的文字是否首席木大写、文字超过后是否缩小...
  • wsb200514
  • wsb200514
  • 2014年09月27日 10:14
  • 11545

设置 UILabel 和 UITextField 的 Padding 或 Insets (理解UIEdgeInsets)

转自http://unmi.cc/uilable-uitextfield-padding-insets 主要是理解下UIEdgeInsets在IOS UI里的意义. 靠,这货其实就是间隔,起个名...
  • u012951123
  • u012951123
  • 2014年04月15日 10:49
  • 2029

设置 UILabel 和 UITextField 的 Padding 或 Insets

iOS 的控件,只看到 UIButton 可以设置 Padding/Insets,即按钮上文字或图片与按钮边界的间隙,对与 CSS 来说叫做 Padding,在 iOS 中叫做 Insets,UI...
  • smallsky_keke
  • smallsky_keke
  • 2012年06月15日 14:23
  • 13308

UITextField常用属性及设置

  • 2014年07月29日 16:00
  • 82KB
  • 下载

Margin和Padding值设置成百分数的布局

Margin和Padding是我们在网页设计经常使用到的CSS样式,他们分别是间距和填充,一个作用于盒子外面,一个作用于盒子里面,默认的情况下,这些属性的值都会被计算在盒子的面积里面,在网页开发中的流...
  • qq_34960569
  • qq_34960569
  • 2016年05月25日 14:10
  • 2558

Android CheckBox中设置padding无效问题解决方法

解决android CheckBox点击区域过小,而设置padding又无效的问题。
  • ccpat
  • ccpat
  • 2015年07月03日 17:20
  • 4280

setBackgroundResource设置背景导致padding错误

1.问题产生:       在项目中发现的bug,程序中为textview设置好padding和background背景图片后,在程序中需要动态的修改background图片。    layout...
  • ifangler
  • ifangler
  • 2014年11月15日 16:33
  • 1413

HTML边距设置之padding和margin

在CSS中margin是指从自身边框到另一个容器边框之间的距离,就是容器外距离。在CSS中padding是指自身边框到自身内部另一个容器边框之间的距离,就是容器内距离。       下面讲解 pad...
  • jimsonhappy
  • jimsonhappy
  • 2014年09月25日 00:32
  • 6393
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UITextField设置padding
举报原因:
原因补充:

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