第一部分 目標效果
測試
今天要達到的目標以下:字體
第二部分 理論知識spa
從上面的圖片和咱們常常使用新浪微博的經驗來看,一點擊文字輸入框就會調用出鍵盤的會有兩個控件,一個是UITxtField和UITextView,那麼到底選哪一個控件好了,在選控件以前,咱們先來看看他們的區別繼承
經過上表能夠發現,UITextView沒有placeholder屬性,而UITextField卻有,可是,UITextfield只能顯示一行文字,而UITextView卻能顯示任意一行文字,就實際效果來看,咱們選擇UItextview,而且重寫它的某些方法便可,就本次的目標來看,增長兩個屬性便可,placeholder和placeholdercolor便可。目標肯定以後,咱們新建一個類LHTextView,繼承自UITextView,圖片
它的頭文件以下圖博客
那麼如何顯示placeholder呢?,這裏咱們採起quart2D的繪圖技術,重繪這個placeholder,在.m文件中實現這個方法以下圖微博
既然在頭文件裏聲明瞭這兩個屬性,那麼在調用的時候必定會調用setter方法,因此咱們在.m文件一樣重寫這兩個setter方法,新浪微博
因爲要實現實時改變textview的文字和字體大小,因此也要重寫他們的setter方法方法
固然,咱們自定義控件,確定要實現它的初始化方法:im
講到這裏,自定義控件方法寫完了
第三部分 測試效果
自定義空間以後固然須要測試了,看寫的正不正確,在下圖的這個方法裏修改placeholder和placeholdercolor兩個屬性
咱們修改它的字體大小(font屬性)來測試,結果以下圖
修改顏色改成橙色以下
以上測試發現均可以,就算是測試經過吧,最後別忘了把通知移除哦
好啦,今天的博客就講到這,講得很差,歡迎批評指正或留言交流!