zoukankan      html  css  js  c++  java
  • UITextField设置leftView的Insets

    Insets就是css中的padding

    我们给UITextField设置了leftView,目的是在文本输入框左側显示一个图标。可是在ios7里,这个图标会紧紧地挨着TextField的左边框,非常不美观,所以就希望设置一个Insets。可是直接设置ImageView的bounds不行,须要用以下这种方法:

    @interface YLSTextField : UITextField
    
    -(id)initWithFrame:(CGRect)frame Icon:(UIImageView*)icon;
    
    @end

    @implementation YLSTextField
    
    -(id)initWithFrame:(CGRect)frame Icon:(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 += 10;// 右偏10
        return iconRect;
    }
    
    @end

    UIImage *usernameImage = [UIImage imageNamed:@"user"];
    UIImageView *usernameIcon = [[UIImageView alloc] initWithImage:usernameImage];
    usernameIcon.frame = CGRectMake(0, 0, 20, 20);
            
    self.username = [[YLSTextField alloc] initWithFrame:CGRectMake(0, 0, 240, 30) Icon:usernameIcon];
    self.username.placeholder = @"用户名";
    self.username.borderStyle = UITextBorderStyleRoundedRect;
    self.username.clearButtonMode = UITextFieldViewModeWhileEditing;
    [self.username setKeyboardType:UIKeyboardTypeNumberPad];

    关键就是定义UITextField的子类,并覆盖其leftViewRectForBounds方法

  • 相关阅读:
    Linux netstat 命令入门知识
    Linux文件预读对系统的影响
    Ubuntu下配置Hadoop环境
    Debian Wheezy 安装Nginx+HHVM
    Linux Glibc库严重安全漏洞检测与修复方案
    关于系统时间的几个问题
    C语言的整型溢出问题
    Django Nginx配置
    linux上安装mysql5.7
    日期、时间选择器
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4479851.html
Copyright © 2011-2022 走看看