iOS UITextField光标/文字起始位置

2018-03-14  本文已影响1201人  NapoleonY

概述

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的宽度即可

上一篇 下一篇

猜你喜欢

热点阅读