天天看點

教大家如何給UITextView添加placeholder擴充如何擴充UITextView以追加placeholder功能呢?

通過繼承uitextview的方式

通過擴充uitextview的方式

##說明:頭檔案中其實隻需要公開hdf_placeholderlabel屬性就可以實作了,但是依然公開了對hdf_placeholderlabel直接屬性,可以根據個人習慣使用。擴充是不能擴充屬性的,但是這裡寫成了屬性的形式,其實隻是利用了getter/setter方式,重寫其api。内部會使用動态運作時機制來完成擴充僞屬性的功能(稱為僞屬性是因為本質上是擴充不了屬性的)

說明:這裡的實作檔案中使用了運作時機制(runtime)來實作,這裡對文本改變的監聽,交給了自己和uiapplication,是為了相容到ios6.0,在6.0下,交給自己是不可行的,會崩潰,是以移交給uiapplication單例對象來管理。

############提示:這裡使用了masonary這個自動布局的三方庫,讓這個placeholderlabel自動根據uitextview的大小變化而變化。代碼中使用了判斷ios系統,判斷是否為空串的代碼,這裡不寫出來了,自己替掉即可。

相容ios6.0及其以上版本

繼續閱讀