...繞了一大圈,又繞回原生來了,今天,學習一下swift3.0語法下的自定義鍵盤.效果圖以下:git
其實,很簡單,只須要把UITextView(或者UITextField)的inputView屬性設置爲自定義的視圖便可.github
這裏,我舉一個栗子,添加一個自定義的emoji鍵盤.swift
思路:a.先來一個UIViewController,用來承載一個ToolBar(只是爲了放幾個按鈕,切換系統鍵盤和自定義鍵盤)閉包
b.在該UIViewController上面放一個UITextView便可.更改inputView屬性.佈局
c.新建一個UIViewController做爲自定義鍵盤的界面承載.其上放一個UICollectionView佈局自定義鍵盤界面學習
1:完成a.b兩步,好比把UITextView.inputView = UIViewController().view 效果會以下:spa
2.OK,接下來我找了個emoji.plist文件用來存放emoji表情數據,寫了一個model存放表情數據使用,而後在collectionView上顯示便可.3d
其中,重點是如何顯示emoji表情,大體以下:code
code = dict["code"] as! String? //emoji.plist中的code //1.從字符串中取出十六進制的數 //建立一個掃描器,掃描器能夠從字符串中提取數據 let sanner = Scanner.init(string: code!) //2.將十六進制轉爲字符串 var result:UInt32 = 0 sanner.scanHexInt32(&result) //3.將十六進制轉換爲emoji字符串 emojiStr = "\(Character.init(UnicodeScalar.init(result)!))"
其實就是使用Scanner掃描轉換emoji表情爲系統可識別的字符串便可,其實,emoji本質就是一些String.blog
3.使用MVC在collectionView上顯示出表情以後,能夠經過閉包回調把選擇的表情回調至承載UITextView的控制器中便可.
基本思路就是這麼簡單. demo在 https://github.com/pheromone/swift3.0-emojiKeyboard