打造一个支持占位符的多行文本输入框
前言
众所周知,在iOS开发中,UIKit提供的文本输入框有两种:UITextField和UITextView。前者支持站位付,但不支持多行输入,后者支持多行输入,但不支持占位符。而在实际开发过程中经常须要使用到既能支持多行输入,又能支持占位符的文本输入框,这就必须自己实现了。我在须要使用的时候也在网上找了一些别人写的,但是,说真的,没找到好用的,并且看他们的源码实现过程还较为复杂。所以就自己写了一个。
开发思路
这是一个很简单的东西,就不在此详细介绍实现的过程,代码已经上传到github,支持cocoapods。
这里简单介绍一下实现的思路:
就是在一个UITextView上放了一个UILabel,UILbel用来显示占位符,在初始化时通过通知监听UITextView的文本变化情况,当文本长度为0时,将UILabel隐藏,否则显示。并且需要经Label的字体设置为和TextView相同。就OK了!
使用方法
该类继承于UITextyView,只在接口中开放了一个placeholder的属性,使用时设置该属性即可,其他和UITextView一样。
github地址:https://github.com/a770322699/MYQPlaceholderTextView
cocopods使用:pod "MYQPlaceholderTextView"