美文网首页
UITextField 基本使用方法

UITextField 基本使用方法

作者: 山水域 | 来源:发表于2017-07-29 18:17 被阅读78次
        /* 
         设置背景色、背景图片。设置了背景图片后,背景色设置无效 
         如果background为nil,disabledBackground无效 
         */  
        _textField.background = [UIImage imageNamed:@"图片名字"];  
        _textField.disabledBackground = [UIImage imageNamed:@"图片名字"];  
    
        /* 
         设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动 
         */  
        _textField.adjustsFontSizeToFitWidth = YES;  
        //设置自动缩小显示的最小字体大小,adjustsFontSizeToFitWidth为YES才会起作用  
        _textField.minimumFontSize = 10;  
        _textField.font = [UIFont systemFontOfSize:20.0f];  
    
        /* 
         内容对齐方式 
         内容的垂直对齐方式  UITextField继承自UIControl,此类中有一个属性contentVerticalAlignment 
         */  
        _textField.textAlignment = UITextAlignmentLeft;  
        _textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;  
    
     /* 
         输入框样式 
         */  
         typedef enum { 
         UITextBorderStyleNone, 
         UITextBorderStyleLine, 
         UITextBorderStyleBezel, 
         UITextBorderStyleRoundedRect 
         } UITextBorderStyle; 
    
    
        _textField.borderStyle = UITextBorderStyleBezel;  
    
        /* 
         每输入一个字符就变成点 用语密码输入 
         */  
        _textField.secureTextEntry = YES;  
    
       /* 
         输入框中是否有个叉号,在什么时候显示,用于一次性删除输入框中的内容 
         */  
         typedef enum { 
         UITextFieldViewModeNever, 重不出现 
         UITextFieldViewModeWhileEditing, 编辑时出现 
         UITextFieldViewModeUnlessEditing, 除了编辑外都出现 
         UITextFieldViewModeAlways  一直出现 
         } UITextFieldViewMode; 
    
    
        _textField.clearButtonMode = UITextFieldViewModeWhileEditing;  
    
        /* 
         开始编辑,清空数据 
         */  
        _textField.clearsOnBeginEditing = NO;  
    
           /* 
         开始编辑,清空数据 
         */  
         typedef enum { 
         UITextAutocorrectionTypeDefault, 默认 
         UITextAutocorrectionTypeNo,  不自动纠错 
         UITextAutocorrectionTypeYes, 自动纠错 
         } UITextAutocorrectionType; 
    
    
        _textField.autocorrectionType = UITextAutocorrectionTypeYes;  
    
        /* 
         //首字母是否大写 
     */  
         typedef enum { 
         UITextAutocapitalizationTypeNone, 不自动大写 
         UITextAutocapitalizationTypeWords, 单词首字母大写 
         UITextAutocapitalizationTypeSentences, 句子的首字母大写 
         UITextAutocapitalizationTypeAllCharacters, 所有字母都大写 
         } UITextAutocapitalizationType; 
        
        _textField.autocapitalizationType = UITextAutocapitalizationTypeWords;  
          
    
       /* 
         键盘 
       */  
         typedef enum { 
         UIKeyboardTypeDefault,      默认键盘,支持所有字符 
         UIKeyboardTypeASCIICapable, 支持ASCII的默认键盘 
         UIKeyboardTypeNumbersAndPunctuation, 标准电话键盘,支持+*#字符 
         UIKeyboardTypeURL,            URL键盘,支持.com按钮 只支持URL字符 
         UIKeyboardTypeNumberPad,             数字键盘 
         UIKeyboardTypePhonePad,   电话键盘 
         UIKeyboardTypeNamePhonePad,  电话键盘,也支持输入人名 
         UIKeyboardTypeEmailAddress,  用于输入电子 邮件地址的键盘 
         UIKeyboardTypeDecimalPad,    数字键盘 有数字和小数点 
         UIKeyboardTypeTwitter,       优化的键盘,方便输入@、#字符 
         UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, 
         } UIKeyboardType; 
      
    
        _textField.keyboardType = UIKeyboardTypeDefault;  
    
        /* 
          return键变成什么键 
     */  
         typedef enum { 
         UIReturnKeyDefault, 默认 灰色按钮,标有Return 
         UIReturnKeyGo,     标有Go的蓝色按钮 
         UIReturnKeyGoogle,标有Google的蓝色按钮,用语搜索 
         UIReturnKeyJoin,标有Join的蓝色按钮 
         UIReturnKeyNext,标有Next的蓝色按钮 
         UIReturnKeyRoute,标有Route的蓝色按钮 
         UIReturnKeySearch,标有Search的蓝色按钮 
         UIReturnKeySend,标有Send的蓝色按钮 
         UIReturnKeyYahoo,标有Yahoo的蓝色按钮 
         UIReturnKeyYahoo,标有Yahoo的蓝色按钮 
         UIReturnKeyEmergencyCall, 紧急呼叫按钮 
         } UIReturnKeyType; 
        
    
        _textField.returnKeyType = UIReturnKeyDone;  
          
    
       /* 
         键盘外观 
         */  
         typedef enum { 
         UIKeyboardAppearanceDefault, 默认外观,浅灰色 
         UIKeyboardAppearanceDark,   深灰 石墨色 
         UIKeyboardAppearanceLight 浅灰色 
         } UIReturnKeyType; 
    
    
        _textField.keyboardAppearance=UIKeyboardAppearanceDefault;  
    
        /* 
         设置左右的两个view 
         */  
        UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image_right"]];  
       imgView.frame = CGRectMake(0, 0, 20, 20);  
       _textField.rightView = imgView;  
       _textField.rightViewMode = UITextFieldViewModeAlways;   // 同上  
    
        UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image_left"]];  
        imgView.frame = CGRectMake(0, 0, 20, 20);  
        _textField.leftView = imgView;  
        _textField.leftViewMode = UITextFieldViewModeAlways;   // 同上  
    

    重写绘制行为

    除了UITextField对象的风格选项,你还可以定制化UITextField对象,为他添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围。以下方法都可以重写。

         – textRectForBounds:     //重写来重置文字区域 
         – drawTextInRect:         //改变绘文字属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了. 
         – placeholderRectForBounds:  //重写来重置占位符区域 
         – drawPlaceholderInRect:  //重写改变绘制占位符属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了. 
         – borderRectForBounds:  //重写来重置边缘区域 
         – editingRectForBounds:  //重写来重置编辑区域 
         – clearButtonRectForBounds:  //重写来重置clearButton位置,改变size可能导致button的图片失真 
         – leftViewRectForBounds: 
         – rightViewRectForBounds: 
    
    /**
     *  设置Placeholder
     */
    - (void)customWithPlaceholder: (NSString *)placeholder color: (UIColor *)color font: (UIFont *)font {
        
        self.placeholder = placeholder;
        [self setValue:颜色 forKeyPath:@"_placeholderLabel.color"];
    }
    
    
    /**
     *  控制编辑文本的位置
     */
    -(CGRect)editingRectForBounds:(CGRect)bounds {
        
        CGRect inset = CGRectMake(bounds.origin.x, bounds.origin.y+13.5f, bounds.size.width, bounds.size.height);
        
        return inset;
    }
    
    
    /**
     *  控制显示文本的位置
     */
    -(CGRect)textRectForBounds:(CGRect)bounds {
       
        CGRect inset = CGRectMake(bounds.origin.x, bounds.origin.y+13.5f, bounds.size.width, bounds.size.height);
        
        return inset;
    }
    
    /**
     清除按钮位置
     */
    -(CGRect)clearButtonRectForBounds:(CGRect)bounds {
        CGRect inset = CGRectMake(bounds.origin.x, bounds.origin.y+13.5f, bounds.size.width, bounds.size.height);
        CGRect clearButtonRect = [super clearButtonRectForBounds:inset];
        return clearButtonRect;
    }
    
    - (CGRect)placeholderRectForBounds:(CGRect)bounds{
        CGRect inset = CGRectMake(bounds.origin.x, bounds.origin.y+13.5f, bounds.size.width, bounds.size.height);
        return inset;
    }
    

    相关文章

      网友评论

          本文标题:UITextField 基本使用方法

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