概述
iOSUITextField
默认输入光标和显示内容等靠近左边框,有时项目需要调整输入光标/内容起始位置
方法一
- 新建一个
UITextField
的子类 - 子类中重载以下几个方法
//未编辑状态下的起始位置 - (CGRect)textRectForBounds:(CGRect)bounds { return CGRectInset(bounds, 5, 0); } // 编辑状态下的起始位置 - (CGRect)editingRectForBounds:(CGRect)bounds { return CGRectInset(bounds, 5, 0); } //placeholder起始位置 - (CGRect)placeholderRectForBounds:(CGRect)bounds { return CGRectInset(bounds, 5, 0); }
方法二
设置UITextField
的leftView
和leftViewMode
属性即可
项目实例
项目需求
项目中有一个需求:UITextField
中没有内容时,显示一个搜索图标和placeholder文本,搜索图标、光标、placeholder位置在UITextField
居中;当UITextField
中有输入文本时,搜索图标消失,光标和输入文本在UITextField
左对齐
解决方法
使用上述方法二,根据UITextField
中是否有文本,动态调节UITextField
的leftView.frame
的宽度即可
网友评论