/*
设置背景色、背景图片。设置了背景图片后,背景色设置无效
如果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;
}
网友评论