上一篇講到更新xcode8之后,出現了2個新的模板,是專門用來開發信息應用的。iOS10其中一個較為之大的變化在于發短信的時候能發表情包,和自帶的特效圖。
這就是意味著-----我們能在短信上斗圖了。。。
首先做的那個demo是不用代碼的
1、創建Sticker應用
2、創建好工程之后,發現工程里面只有一個放照片的,沒有什么.h文件,.m文件。選擇Stickers -> Sticker Pack ,只需要把你想要在短信上生成的圖片拉進去就行了。(注意:圖片要求是要 小于500kb ?, 大于300 * 300 像素 ?,小于618*618像素的 GIF,PNG,JPG,APNG圖片)
3、運行項目,如果是模擬器的話,會出現下圖的選項,選擇我們的項目就可以了,然后點擊我們的表情,編輯想發的文字,就可以發出去了
由于xcode8更新了swift3.0所以這次的demo代碼用swift 寫一遍
1、創建一個iMessageAPP
2、看一下項目的目錄架構第一個目錄只有一個Assets文件和配置文件,這個地方一般放Icon。第二個目錄為Extension目錄,該目錄為主要工作目錄,里面主要為代碼編寫和表情放置的地方。Frameworks目錄下 自動生成了一個Messges.frameworks包。我們主要用到的是Extension目錄,將我們需要的表情包放進該目錄下
3、開始我們的代碼編寫,首先創建sticker并放入數組中
//創建MSSticker數組
varstickers = [MSSticker]( )
//將圖片url生成sticker,并將其放入數組
funcloadsStickers() {
foriin1...2{
leturl =Bundle.main.url(forResource:"\(i)", withExtension:"jpg")
if(url !=nil) {
letsticker =try?MSSticker.init(contentsOfFileURL: url!, localizedDescription:"")
stickers.append(sticker!)
}
}
}
4、創建MSStickerBrowserViewController覆蓋在原本的viewcontroller上
//定義MSStickerBrowserViewController
let controller =MSStickerBrowserViewController(stickerSize: .large)
//創建MSStickerBrowserViewController
func createStickerBrowser() {
addChildViewController(controller)
view.addSubview(controller.view)
controller.stickerBrowserView.backgroundColor=UIColor.blue
view.topAnchor.constraint(equalTo:controller.view.topAnchor).isActive=true
view.bottomAnchor.constraint(equalTo:controller.view.bottomAnchor).isActive=true
view.leftAnchor.constraint(equalTo:controller.view.leftAnchor).isActive=true
view.rightAnchor.constraint(equalTo:controller.view.rightAnchor).isActive=true
}
5、遵循MSStickerBrowserViewDataSource代理,并實現必須實現的代理方法
//確認代理
controller.stickerBrowserView.dataSource=self
//顯示的表情數量
func numberOfStickers(in stickerBrowserView:MSStickerBrowserView) ->Int{
returnstickers.count
}
//返回表情
func stickerBrowserView(_stickerBrowserView:MSStickerBrowserView, stickerAt index:Int) ->MSSticker{
returnstickers[index]
}
6、最后在viewDidLoad里面實現 我們創建的2個方法
loadsStickers()
createStickerBrowser()
這樣iMessage的整個demo也就完成了
最后的demo過幾天我發github上,然后再更新。