iOS10 iMessage开发

上一篇讲到更新xcode8之后,出现了2个新的模板,是专门用来开发信息应用的。iOS10其中一个较为之大的变化在于发短信的时候能发表情包,和自带的特效图。

这就是意味着-----我们能在短信上斗图了。。。

首先做的那个demo是不用代码的

1、创建Sticker应用

iOS10 iMessage开发_第1张图片

2、创建好工程之后,发现工程里面只有一个放照片的,没有什么.h文件,.m文件。选择Stickers -> Sticker Pack ,只需要把你想要在短信上生成的图片拉进去就行了。(注意:图片要求是要 小于500kb  , 大于300 * 300 像素  ,小于618*618像素的 GIF,PNG,JPG,APNG图片)

iOS10 iMessage开发_第2张图片

3、运行项目,如果是模拟器的话,会出现下图的选项,选择我们的项目就可以了,然后点击我们的表情,编辑想发的文字,就可以发出去了

iOS10 iMessage开发_第3张图片
iOS10 iMessage开发_第4张图片

由于xcode8更新了swift3.0所以这次的demo代码用swift 写一遍

1、创建一个iMessageAPP

iOS10 iMessage开发_第5张图片

2、看一下项目的目录架构第一个目录只有一个Assets文件和配置文件,这个地方一般放Icon。第二个目录为Extension目录,该目录为主要工作目录,里面主要为代码编写和表情放置的地方。Frameworks目录下 自动生成了一个Messges.frameworks包。我们主要用到的是Extension目录,将我们需要的表情包放进该目录下

iOS10 iMessage开发_第6张图片

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上,然后再更新。

你可能感兴趣的:(iOS10 iMessage开发)