iOS UITextField光标/文字起始位置

概述

iOSUITextField默认输入光标和显示内容等靠近左边框,有时项目需要调整输入光标/内容起始位置

方法一

  1. 新建一个UITextField的子类
  2. 子类中重载以下几个方法
     //未编辑状态下的起始位置
     - (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);
     }
    

方法二

设置UITextFieldleftViewleftViewMode属性即可

项目实例

项目需求

项目中有一个需求:UITextField中没有内容时,显示一个搜索图标和placeholder文本,搜索图标、光标、placeholder位置在UITextField居中;当UITextField中有输入文本时,搜索图标消失,光标和输入文本在UITextField左对齐

解决方法

使用上述方法二,根据UITextField中是否有文本,动态调节UITextFieldleftView.frame的宽度即可

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容