首頁 > 手機軟體

iOS開發 UITextView的建立與使用

2019-12-04 19:07:01

      UITextView文字檢視相比與UITextField直觀的區別就是UITextView可以輸入多行文字並且可以捲動顯示瀏覽全文。UITextField的用處多,UITextView的用法也不少。常見UITextView使用在APP的軟體簡介、內容詳情顯示、小說閱讀顯示、發表空間內容輸入、說說文字方塊、評論文字方塊等。UITextView的使用有它本身的代理方法,也有繼承於父類別的方法。本身的方法有從開始編輯到結束編輯的整個過程的監聽,繼承的方法主要是繼承於UIScrollView的方法,因為關於捲動的控制都屬於UIScrollView的。根據常用經驗,個人新增了在有導航欄的情況下可能輸入文字方塊是下移的修復方法和新增文字時內容顯示自動捲動到UITextView底部的實現方法。

1

建立工程專案和檢視控制器

      1、建立工程專案,新建一個UIViewController;

      2、選中工程,右鍵-New File…選擇「Cocoa Touch Class」-Next,給個合理的名稱ViewController,再Next完成;

      3、在AppDelegate.m檔案包含#import "ViewController.h";

      4、初始化建立ViewController的檢視控制器,並用導航欄控制器包含。將之設定為根檢視控制器。


2

建立UITextView及新增代理

      1、在ViewController.h新增事件代理和資料來源代理<UTextViewDelegate>。

      2、在ViewController.h建立UITextView。

      3、在ViewController.m初始化UITextView。

      4、代理授權並新增至檢視。

      5、在有導航欄的情況下可能輸入文字方塊是下移,修復方法:在ViewController.m中的viewDidLoad方法中新增self.automaticallyAdjustsScrollViewInsets = NO;



3

設定UITextView的屬性

      1、設定文字屬性:text;

      2、設定文字對齊方式屬性:textAlignment;

      3、設定文字顏色屬性:textColor;

      4、設定文字字型屬性:font;

      5、設定編輯使能屬性:editable;

      6、設定背景顏色屬性:backgroundColor;

      7、圓角邊框:layer.cornerRadius、layer.borderWidth。


4

新增UITextView的代理方法

      1、將要開始編輯:textViewShouldBeginEditing;

      2、將要完成編輯:textViewShouldEndEditing;

      3、開始編輯:textViewDidBeginEditing;

      4、完成編輯:textViewDidEndEditing;

      3、將要改變內容:shouldChangeTextInRange;

      4、內容完成改變:textViewDidChange;

      5、內容被選中:textViewDidChangeSelection。


5

輸入文字時自動捲動到底部

      1、建立並初始化一個UIButton按鈕;

      2、為按鈕新增點選事件;

      3、拼接字串賦值給self.textView.text;

      4、計算NSRange自動捲動到底部。



6

模仿UITextField的placeholder屬性

      1、建立並初始化一個全域性控制元件UILabel標籤;

      2、將UILabel的背景顏色設定為透明顏色clearColor;

      3、設定UILabel的textColor屬性為灰色grayColor;

      4、設定UILabel的text屬性為需要的提示文字;

      5、設定UILabel的font屬性和self.textView.font一致;

      6、將UILabel載入至self.textView圖層上;

      7、在textViewDidBeginEditing和textViewDidEndEditing內寫實現方法。




7

設定點選空白處時隱藏鍵盤

      self.view本身有被點選事件,新增方法可以隱藏鍵盤。

      拼接內容完成時也隱藏鍵盤[self.view endEditing:YES]。


1

https://github.com/cjq002/UITextView.git

2

程式碼執行效果(如圖)





IT145.com E-mail:sddin#qq.com