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