彩世界开奖app官网-彩世界平台官方网址(彩票平台)
做最好的网站
来自 计算机编程 2019-09-19 18:18 的文章
当前位置: 彩世界开奖app官网 > 计算机编程 > 正文

关于iOS10 - iMessage App的总结彩世界开奖app官网

彩世界开奖app官网 1系统新闻

个体知道有三种完成方式:

1:实现

< 1 > 创立Sticker Pack 工程create a new Xcode project > iOS > Sticker Pack Application > Next< 2 > 拖入图片选中Stickers.xcsstickers > 选中侧面的Sticker Pack文件夹 > 选中资料中的全数图片 > 拖入Sticker Pack中< 3 > 运维选取message平台< 4 > 增多GIF动图(下图中最后七个开关都为动图,因为是截屏所以也看不到效果)

  • 当选Sticker Pack文件夹 > 点击下方➕号 > 选拔New Sticker Sequence增添动态表情
  • 拖入该动态图表的相继帧图片就可以(拖入Frame1地点)
  • 入选Sticker Sequence > 点击右面板中的属性检查器 > 设置Sticker Sequence分类下的Frame Per Second 设置时间

彩世界开奖app官网 2效果图.png

彩世界开奖app官网 3点击工程彩世界开奖app官网 4修改对应的性子,禁止系统的出口日志彩世界开奖app官网 5禁止后的功力,咱们团结输出的事物依然得以健康输出

< 3 > 可安装动态表情包的小运

一、创建独立的神采包应用(Sticker pack app ):

表情包限制(展现在甄选列表时的轻重,默以为Medium):

  • Small :100 x 100 @3x scale (300 x 300 pixel image)
  • Medium : 136 x 136 @3x scale (378 x 378 pixel image)
  • Large : 206 x 206 @3x scale (618 x 618 pixel image)其他限制:
  • 文本中的 images 不得以高于500kb
  • image 不可以低于100 x 100 pt (300 x 300 pixels)
  • image 不得以高于206 x 206 pt (618 x 618 pixels)
  • image 格式必需是PNG、APNG、JPEG、GIF

9代码具名

Xcode8之后必需用代码签名,富含第三方SDK也亟需代码签名,好的一点是苹果提供自动代码具名

彩世界开奖app官网 6代码签字,自动

彩世界开奖app官网 7

二:创建 iMessage 应用(iMessage app ):

< 1 > Create a new Xcode project > IOS > iMessage Application > Next生成的目录结构,主假如本着 MessageExtension 文件夹开采。< 2 > 将图片财富足够到工程中 。< 3 > 在 MessagesAppViewController 中加载表情包数据,成立MSStickerBrowserViewController 兑现MSStickerBrowserViewDataSource 代理数据 。

#import "MessagesViewController.h"@interface MessagesViewController ()<MSStickerBrowserViewDataSource>@property (nonatomic,strong) NSMutableArray *stickersArray;@end@implementation MessagesViewController- viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view.// 初始化本地表情包 [self loadStickers];// 创建本地表情包控制器 [self createStickerBrowserViewController];}//加载表情包,上面设置了数据源,所以我们要加载图片- loadStickers{ NSMutableArray *mArray = [NSMutableArray array]; for (int i = 1; i < 11; i  ) {//  //传入对应的url NSURL *url = [[NSBundle mainBundle] URLForResource:[NSString stringWithFormat:@"scoopsd_sticker", i] withExtension:@"png"]; MSSticker *sticker = [[MSSticker alloc]initWithContentsOfFileURL:url localizedDescription:@"" error:nil]; [mArray addObject:sticker]; } self.stickersArray = mArray;}// 要想显示图片表情,必须要初始化一个MSStickerBrowserViewController作为根视图- createStickerBrowserViewController{ MSStickerBrowserViewController *browserVc = [[MSStickerBrowserViewController alloc]initWithStickerSize:MSStickerSizeSmall]; [self addChildViewController:browserVc]; [self.view addSubview:browserVc.view]; browserVc.stickerBrowserView.backgroundColor = [UIColor cyanColor]; //设置数据源 browserVc.stickerBrowserView.dataSource = self; browserVc.view.translatesAutoresizingMaskIntoConstraints = NO; //自动布局 [self.view.topAnchor constraintEqualToAnchor:browserVc.view.topAnchor].active = YES; [self.view.bottomAnchor constraintEqualToAnchor:browserVc.view.bottomAnchor].active = YES; [self.view.leftAnchor constraintEqualToAnchor:browserVc.view.leftAnchor].active = YES; [self.view.rightAnchor constraintEqualToAnchor:browserVc.view.rightAnchor].active = YES; }#pragma mark - MSStickerBrowserViewDataSource 数据源代理方法// 一共有多少个-(NSInteger)numberOfStickersInStickerBrowserView:(MSStickerBrowserView *)stickerBrowserView{ return self.stickersArray.count;}// 每一个要显示什么- (MSSticker *)stickerBrowserView:(MSStickerBrowserView *)stickerBrowserView stickerAtIndex:(NSInteger)index{ return self.stickersArray[index];}

彩世界开奖app官网 8408742A7-32CB-4348-882E-E1F21A8964BE.png

彩世界开奖app官网 9接待分界面扁平化网格去掉,是还是不是美观相当多了彩世界开奖app官网 10常用的放在最前边

彩世界开奖app官网 11

三:在已有的连串中增加 iMessage APP 扩张,自定义ViewController可发送图片、音频、录制文件

< 1 > 首先创设四个清淡无奇的工程,File->New->Target->Application Extension->Messages Extension

彩世界开奖app官网 12AFB6C564-A4A1-44C0-9958-D73FCE9A632E.png彩世界开奖app官网 136EB59770-E97C-43DE-A8FF-8B8A28CCAB08.png彩世界开奖app官网 147609C234-1DB1-4AEC-99B1-26D35FC5CAD6.png彩世界开奖app官网 1538F3DCDE-9F90-47BF-8C43-15874106B1CF.png

<2>运营 效果如下

彩世界开奖app官网 1611DA93EE-4141-4FC6-BE8B-40EDE21F233B.png

<3>发送自定义的神采,音频,录像等重要代码

//发送图片 -sendPhoto{ NSURL *url = [[NSBundle mainBundle] URLForResource:@"image" withExtension:@"png"]; [self sendMessageWithURL:url]; } //发送音乐 -sendMusic{ NSURL *url = [[NSBundle mainBundle] URLForResource:@"blank" withExtension:@"mp3"]; [self sendMessageWithURL:url]; } //发送视频 -sendVideo{ NSURL *url = [[NSBundle mainBundle] URLForResource:@"moments" withExtension:@"mp4"]; [self sendMessageWithURL:url]; } //发送贴纸 -sendStick{ [self requestPresentationStyle:MSMessagesAppPresentationStyleCompact]; NSURL *url = [[NSBundle mainBundle] URLForResource:@"sticker" withExtension:@"png"]; MSSticker *sticker = [[MSSticker alloc] initWithContentsOfFileURL:url localizedDescription:@"localizedDescription" error:nil]; [self.activeConversation insertSticker:sticker completionHandler:^(NSError * _Nullable error) { if  { NSLog(@"%@",error); } }]; } //发送自定义消息 -sendAlter{ [self requestPresentationStyle:MSMessagesAppPresentationStyleCompact]; MSMessageTemplateLayout *layout = [[MSMessageTemplateLayout alloc] init]; layout.image = [UIImage imageNamed:@"image"]; layout.imageTitle = @"老虎"; MSMessage *message = [[MSMessage alloc] init]; message.layout =layout; [self.activeConversation insertMessage:message completionHandler:^(NSError * _Nullable error) { if  { NSLog(@"%@",error); } }]; } // 通过 URL 发送消息 -sendMessageWithURL:url{ [self requestPresentationStyle:MSMessagesAppPresentationStyleCompact]; [self.activeConversation insertAttachment:url withAlternateFilename:nil completionHandler:^(NSError * _Nullable error) { if  { NSLog(@"%@",error); } }]; } 

activeConversation 是 MSMessagesAppViewController 里面包车型大巴叁本性能,发送音录制文件,都以由此这几个方法。

突发性大概找不到相应的财富文件, 能够再这里查看是或不是有步向的文书,若无步向,➕号加入该文件就能够。

彩世界开奖app官网 176BE7D7C4-586D-4AB0-A065-3C6BBC0BC505.png

OS_ACTIVITY_MODE disablePS: 知道您不知底那几个是怎样意思,接下去上海体育场面

地点七个也可以以八个app的恢弘嵌入到iMessage应用中。

iMessage App类别

1:Sticker pack app :单独的神气包应用,无需编写制定任何代码,只需拖动图片就可以,包含静态和动态表情2:iMessage app :单独的iMessage应用,要编写代码,能够发送表情包、文字、录像、音频。

地方多少个可独立开采发布也足以贰个app的恢弘嵌入到iMessage应用中。用于在“消息”应用中拜望外界应用

PS:再也不用代码高亮行的插件了

* Sticker pack app :单独的表情包应用,不要求编写制定任何代码,只需拖动图片就可以,包蕴静态和动态表情。

嵌套iMessage APP到本身的应用软件

iMessage App本身是两个Extension,但是它能够单独开辟,不注重任何Container App。大家也能够在存活的品种中加多iMessage App,系统会活动将其增多到Messages App Store。

  • 在现成项目中加多iMessage App,能够通过增多Extension的议程丰裕(File->New->Target->Application Extension->Messages Extension)。

调整台是豪门最长用的从Xcode8beta1 OC调节台不NSLog不出口,到后来调整台都输出一大堆系统音信等等,大家很烦,其实军哥也很烦,比方:

2、自定义ViewController可发送图片、音频、录制文件

Messages framework 说明

Apple在WWDC 贰零壹伍上针对iOS提供的斩新音讯框架(Messages framework)使得开辟者可以创制与Apple的“音信”应用进行互动的行使扩大。新闻框架包罗一二种供开拓者使用的基本类:

  • MSMessageAppViewController:这几个类为音信扩充提供了主视图控件,可用于彰显自定义客户分界面,管理扩充状态,获取当前对话,追踪新闻的发送等功用。
  • MSStickerBrowserViewController、MSStickerBrowserView和MSStickerBrowserViewDataSource:这个类可用以定制和显示自定义或动态的贴纸浏览器(Sticker browser)。假诺要为贴纸浏览器提供动态内容,可以奉行自定义的MSStickerBrowserViewDataSource。若要对私下认可贴纸浏览器的外观进行定制,能够提供自个儿的MSStickerBrowserView,并对浏览器尺寸、贴纸尺寸等剧情开展定制。通过MSStickerView子类还可获取进一步的定制手艺。
  • MSConversation:这些类担任显示对话,将其插入音讯的输入字段就能够用于发送文字、贴纸、附属类小部件,或音讯对象。
  • MSMessage:那个类可用来创建交互式音讯并可访谈音讯属性,譬如发赠与别人、音讯所述的对话,以及音信所关联的可选UPRADOL等
  • MSSession:这些类可用来对新闻实行标记并拓宽一连更新,举个例子可将这一天性用于游戏或搭档应用中。

1.管教应用是实用的相同的时候易于驾驭。

2.作用要集中单一,不要组合多种成效在一起。

3.Messages日常用在双人非正式的攀谈中,应从这里出手,让沟通进一步有意思。

4.Messages的最大两点是分享,利用那或多或少启程开拓Messages App。

5.插图剧情布局要注意,系统会活动将内容变为圆角,不要把重视的新闻放在角落。

6.瞩目,在严密格局下,Messages App的界面是不允许水平滚动的。

7.等同,在严密情势下,Messages App不允许键盘输入

10文档

文书档案万物更新,分为斯维夫特 和OC文书档案,具体看图

彩世界开奖app官网 18文档彩世界开奖app官网 19扁平化,符合大家的审好看

不断立异实用的干货关心军哥,简书首页有本人的微信大伙儿号若是您还开掘有任何的换代,迎接在冲突区里面留言,笔者会时时更新敢不敢把您开掘的Xcode8新特点写在冲突区里

< 2 > 运营效果

8代码调节和测量检验扶助Runtime

Xcode8新增加Runtime调节和测量试验,分界面能够来得运行时的标题,改良的分界面调节和测量检验对于调节和测验不显著恐怕不合意的布局变的更简单

彩世界开奖app官网 20运维时调节和测量检验

表情包限制:

彩世界开奖app官网 21语法切换彩世界开奖app官网 22默认彩世界开奖app官网 233.0彩世界开奖app官网 242.3

彩世界开奖app官网 25

  • 语法转变当然斯维夫特只好前进包容,无法向下兼容,假诺你的语法是2.3的能够转移为3.0的,可是转变不确定成功

    彩世界开奖app官网 26语法转变

* 创设MSStickerBrowserViewController ,作为子类增多到 MessagesAppViewController 中,只要求贯彻贴纸分界面能够挑选这种办法相比轻松。

Xcode8帮忙3.0语法和2.3语法随便切换,暗中认可成立出来是3.0语法, 假如想用2.3语法是足以切换的

iMessage App类别:

看到这里也许大家都想禁止,然则怎么禁止呢

create a new Xcode project > iOS > Sticker Pack Application > Next 

从Xcode8beta1就帮助类名提示了,所以Xcode8正式版也支撑类名提示,你们在也不用伤心了

彩世界开奖app官网 27

PS:每一种新工程都亟待布署,也是不怎么的忧思,不过比较调整台出口无法消除多数了

彩世界开奖app官网 28

Xcode第88中学用的字体是San Francisco Mono字体

#import "MessagesViewController.h"

@interface MessagesViewController ()<MSStickerBrowserViewDataSource>
//创建数据原数组来存储我们的表情包
@property (nonatomic,strong) NSMutableArray *stickersArray;

@end

@implementation MessagesViewController

- (void)viewDidLoad {

    [super viewDidLoad];
    // 初始化本地表情包
    [self loadStickers];
    // 创建本地表情包控制器
    [self createStickerBrowserViewController];

}

//加载表情包,上面设置了数据源,所以我们要加载图片(数据)
- (void)loadStickers{
    NSMutableArray *mArray = [NSMutableArray array];

    for (int i = 1; i < 11; i  ) {

   //传入对应的url
        NSURL *url = [[NSBundle mainBundle] URLForResource:[NSString stringWithFormat:@"scoopsd_sticker", i] withExtension:@"png"];
        MSSticker *sticker = [[MSSticker alloc]initWithContentsOfFileURL:url localizedDescription:@"" error:nil];
        [mArray addObject:sticker];
    }
    self.stickersArray = mArray;

}

// 要想显示图片表情,必须要初始化一个MSStickerBrowserViewController作为根视图
- (void)createStickerBrowserViewController{
    MSStickerBrowserViewController *browserVc = [[MSStickerBrowserViewController alloc]initWithStickerSize:MSStickerSizeSmall];
    [self addChildViewController:browserVc];
    [self.view addSubview:browserVc.view];
    browserVc.stickerBrowserView.backgroundColor = [UIColor cyanColor];
    //设置数据源
    browserVc.stickerBrowserView.dataSource = self;
    browserVc.view.translatesAutoresizingMaskIntoConstraints = NO;

    //自动布局
    [self.view.topAnchor constraintEqualToAnchor:browserVc.view.topAnchor].active = YES;
    [self.view.bottomAnchor constraintEqualToAnchor:browserVc.view.bottomAnchor].active = YES;
    [self.view.leftAnchor constraintEqualToAnchor:browserVc.view.leftAnchor].active = YES;
    [self.view.rightAnchor constraintEqualToAnchor:browserVc.view.rightAnchor].active = YES;


}

#pragma mark - MSStickerBrowserViewDataSource 数据源代理方法(必须实现)
// 一共有多少个
-(NSInteger)numberOfStickersInStickerBrowserView:(MSStickerBrowserView *)stickerBrowserView{

    return self.stickersArray.count;
}

// 每一个要显示什么
- (MSSticker *)stickerBrowserView:(MSStickerBrowserView *)stickerBrowserView stickerAtIndex:(NSInteger)index{

    return self.stickersArray[index];
}



@end

值得一说的是Xcode8.0并不曾做语法捆绑,在既往的版本中都以松绑最新的语法PS:苹果非常开放

2、增加动态表情包

前天黎明(Liu Wei)苹果公布了Xcode8正式版,iOS10, 万众瞩目,那么Xcode8到底更新了怎么着事物吗?,接下去军哥带大家一探终归

彩世界开奖app官网 29

  • 1.放置表情包(Sticker Packs)

    • 能够由此在Xcode中新建Sticker Pack Application来创设。这种艺术能够简轻巧单地经过抬高图片来在iMessage中增加表情包。增加的贴纸要求满足一下准绳图片类型必需是 png、apng、gif或者jpeg文件大小必需 小于500K图片大小必需在 *100 100 到 206 206 *之间

    • 急需留神的是:必得求永久提供 @3x 大小的图形(即 300 300 到 618 618 )。系统能够依据当前设备经过 runtime 自动调度图片来显现 @2x 和 @1x系统可以自适应的来得贴纸,所认为了越来越好的体现贴纸,最棒提供的贴纸是以下三种大小的品类Mini100100中型 136136大型 206*206

  • 2.iMessage行使iMessage app使用完整的框架和Message app举办交互。使用iMessage app能够在音信应用内显示一个自定义的顾客交互界面。 使用MSMessagesAppViewController创办三个自定义也许动态的神采包浏览器。使用 MSStickerBrowserViewController足够文书、表情、可能媒体文件到音信应用的文本输入框。使用 MSConversation创办带有一定的应用数据交互的新闻。使用 MSMessage革新能够互相影响的信息(比如,创建游戏大概可以协作的行使)。

* image 不得以超越206 x 206 pt (618 x 618 pixels)

彩世界开奖app官网 30字体制改善变,对于这个网瘾的工程师来讲大概就是福音

一、创立独立的神情包应用(Sticker pack app ):没有必要代码

这么就曾经完毕了Sticker pack app

* iMessage app :单独的iMessage应用,要编写制定代码,能够发送表情包、文字、摄像、音频。

< 1 > 首先创设三个普普通通的工程,点击➕号增多 iMessage 扩张

< 2 > 拖入该动态图表的逐个帧图片就能够(拖入Frame1地点)。

开创格局:

* 能够像上边同样增多叁个 iMessage 应用

* 自定义一个ViewController,作为子类增多到 MessagesAppViewController 中,增添过后和扑通的App开垦基本没分化,可是要留神View中度的变化,自动布局。

流传对应文件的U奥迪Q5L就可以。

MSStickerBrowViewDataSource :表情数据来源代理 。 

activeConversation 是 MSMessagesAppViewController 里面包车型客车贰性子能,发送音摄像文件,都是通过那么些主意。

< 3 > 在 MessagesAppViewController 中加载表情包数据,创制MSStickerBrowserViewController 兑现MSStickerBrowserVie wDataSource 代理数据 。

* Medium : 136 x 136  @3x scale (378 x 378 pixel image)

彩世界开奖app官网 31

彩世界开奖app官网 32

< 1 >  选中Sticker Pack文件夹 > 点击下方➕号 > 采取New Sticker Sequence增多动态表情

彩世界开奖app官网 33

Message框架的几个基础类介绍:

MSSticker : 表情。是 NSObject 的子类 。

MSStickerBrowserView : 表情View 。

发送贴纸通过这么些点子,同理传入对应的U昂科雷L 就可以,注意贴纸的尺码难点 。

接下去大家根本讲一讲怎么在已部分体系中增加iMessage 应用软件 扩展。

* 文件中的 images 不得以超过500kb

MSStickerBrowViewController : 表情ViewController 。

* 直接在MessagesAppViewController 类中增多View。轻松,复杂的View糟糕管理。

彩世界开奖app官网 34

* image 格式必需是PNG、APNG、JPEG、GIF

那样就实现了在代码中加多贴图 。

事实上,下边八个类就像于 UITableViewCell 、 UITableViewController 、 UITableViewDataSource 的涉及。

< 2 > 拖入图片

代码分析:

出殡贴纸

MSMessageTemplateLayout *layout = [[MSMessageTemplateLayout alloc] init];
layout.image = [UIImage imageNamed:@"image"];
layout.imageTitle = @"老虎";
MSMessage *message = [[MSMessage alloc] init];
message.layout =layout;
[self.activeConversation insertMessage:message completionHandler:^(NSError * _Nullable error) {
    if (error) {
        NSLog(@"%@",error);
    }
}];

iMessage app 是iOS第10中学放到到Message内容的iMessage apps,包含轻便的神气包以及自定义的纷纷分界面。

< 2 > 将图纸财富丰盛到工程中 。

1、自定义贴纸布局

* image 不可以低于100 x 100 pt (300 x 300 pixels)

MessagesAppViewController :iMessage App 程序的入口,工程暗中同意创立其子类MessagesAppViewController 。

发送图片、音录制文件

* 能够再一个平日的应用程式中参与iMessage增添(APP)。

全部代码:

说在前方:

变动的目录结构,重尽管本着 MessageExtension 文件夹开采。

彩世界开奖app官网 35

二、创建 iMessage 应用(iMessage app ):

入选Stickers.xcsstickers > 选中侧边的Sticker Pack文件夹 > 选中材质中的全数图片 > 拖入Sticker Pack中

入选Sticker Sequence > 点击右面板中的属性检查器 > 设置Sticker Sequence分类下的Frame Per Second

1、增添静态表情包** **

* Small :100 x 100   @3x scale (300 x 300 pixel image)

MSSticker *sticker = [[MSSticker alloc] initWithContentsOfFileURL:url localizedDescription:@"localizedDescription" error:nil];

[self.activeConversation insertSticker:sticker completionHandler:^(NSError * _Nullable error) {
    if (error) {
        NSLog(@"%@",error);
    }
}];

突发性也许找不到相应的U昂科雷L, 能够再这里查看是或不是有步入的公文,若无参加,厂商➕号参与该文件就可以。

#import "MessagesViewController.h"

@implementation MessagesViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self setupButton];
}

// 创建按钮 (懒加载的方法)
-(UIButton *)createButtonWithTitle:(NSString *)title action:(SEL)action{
    UIButton *button = [[UIButton alloc] init];
    [button setBackgroundColor:[self randomColor]];
    button.translatesAutoresizingMaskIntoConstraints = NO;
    [button setTitle:title forState:UIControlStateNormal];
    [button addTarget:self action:action forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
    return button;
}

//button的背景颜色设置(随机颜色)
-(UIColor *)randomColor{
    CGFloat red = (CGFloat)random() / (CGFloat)RAND_MAX;
    CGFloat green = (CGFloat)random() / (CGFloat)RAND_MAX;
    CGFloat blue = (CGFloat)random() / (CGFloat)RAND_MAX;
    return [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
}

//设置按钮
- (void)setupButton {
    UIButton *photoButton = [self createButtonWithTitle:@"图片" action:@selector(sendPhoto)];
    UIButton *musicButton = [self createButtonWithTitle:@"音乐" action:@selector(sendMusic)];
    UIButton *videoButton = [self createButtonWithTitle:@"视频" action:@selector(sendVideo)];
    UIButton *stickerButton = [self createButtonWithTitle:@"贴纸" action:@selector(sendStick)];
    UIButton *alterButton = [self createButtonWithTitle:@"自定义" action:@selector(sendAlter)];

    [photoButton.leftAnchor constraintEqualToAnchor:self.view.leftAnchor].active = YES;
    [photoButton.rightAnchor constraintEqualToAnchor:musicButton.leftAnchor].active = YES;
    [photoButton.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor].active = YES;
    [photoButton.heightAnchor constraintEqualToConstant:50].active = YES;

    [musicButton.rightAnchor constraintEqualToAnchor:videoButton.leftAnchor].active = YES;
    [musicButton.widthAnchor constraintEqualToAnchor:photoButton.widthAnchor].active = YES;
    [musicButton.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor].active = YES;
    [musicButton.heightAnchor constraintEqualToConstant:50].active = YES;

    [videoButton.rightAnchor constraintEqualToAnchor:stickerButton.leftAnchor].active = YES;
    [videoButton.widthAnchor constraintEqualToAnchor:photoButton.widthAnchor].active = YES;
    [videoButton.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor].active = YES;
    [videoButton.heightAnchor constraintEqualToConstant:50].active = YES;

    [stickerButton.rightAnchor constraintEqualToAnchor:alterButton.leftAnchor].active = YES;
    [stickerButton.widthAnchor constraintEqualToAnchor:photoButton.widthAnchor].active = YES;
    [stickerButton.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor].active = YES;
    [stickerButton.heightAnchor constraintEqualToConstant:50].active = YES;

    [alterButton.rightAnchor constraintEqualToAnchor:self.view.rightAnchor].active = YES;
    [alterButton.widthAnchor constraintEqualToAnchor:photoButton.widthAnchor].active = YES;
    [alterButton.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor].active = YES;
    [alterButton.heightAnchor constraintEqualToConstant:50].active = YES;
}

//发送图片
-(void)sendPhoto{
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"image" withExtension:@"png"];
    [self sendMessageWithURL:url];
}
//发送音乐
-(void)sendMusic{
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"blank" withExtension:@"mp3"];
    [self sendMessageWithURL:url];
}
//发送视频
-(void)sendVideo{
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"moments" withExtension:@"mp4"];
    [self sendMessageWithURL:url];
}
//发送贴纸
-(void)sendStick{
    [self requestPresentationStyle:MSMessagesAppPresentationStyleCompact];
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"sticker" withExtension:@"png"];

    MSSticker *sticker = [[MSSticker alloc] initWithContentsOfFileURL:url localizedDescription:@"localizedDescription" error:nil];

    [self.activeConversation insertSticker:sticker completionHandler:^(NSError * _Nullable error) {
        if (error) {
            NSLog(@"%@",error);
        }
    }];
}
//发送自定义消息
-(void)sendAlter{
    [self requestPresentationStyle:MSMessagesAppPresentationStyleCompact];
    MSMessageTemplateLayout *layout = [[MSMessageTemplateLayout alloc] init];
    layout.image = [UIImage imageNamed:@"image"];
    layout.imageTitle = @"老虎";
    MSMessage *message = [[MSMessage alloc] init];
    message.layout =layout;
    [self.activeConversation insertMessage:message completionHandler:^(NSError * _Nullable error) {
        if (error) {
            NSLog(@"%@",error);
        }
    }];
}

// 通过 URL 发送消息
-(void)sendMessageWithURL:(NSURL *)url{
    [self requestPresentationStyle:MSMessagesAppPresentationStyleCompact];
    [self.activeConversation insertAttachment:url withAlternateFilename:nil completionHandler:^(NSError * _Nullable error) {
        if (error) {
            NSLog(@"%@",error);
        }
    }];
}


@end

< 4 >运维效果

< 1 > Create a new Xcode project > IOS > iMessage Application > Next

点击Finish,弹框选Yes ,完毕增进扩大生成的目录和创立的 iMessage App 在 MyMessage2Extension 目录下是一律的 。

彩世界开奖app官网 36

彩世界开奖app官网 37

< 1 > 创建Sticker Pack 工程

NSURL *url = [[NSBundle mainBundle] URLForResource:@"image" withExtension:@"png"];
[self.activeConversation insertAttachment:url withAlternateFilename:nil completionHandler:^(NSError * _Nullable error) {
    if (error) {
        NSLog(@"%@",error);
    }
}];

任何限制(表情包大小):

如此那般就完了了Sticker pack静态表情包

彩世界开奖app官网 38

彩世界开奖app官网 39

* Large : 206 x 206  @3x scale (618 x 618 pixel image)

发送自定义音讯
出殡自定义音讯根本是自定义 message 的 layout 属性以及任何的连带属性。

本文由彩世界开奖app官网发布于计算机编程,转载请注明出处:关于iOS10 - iMessage App的总结彩世界开奖app官网

关键词: 学习笔记 大新 特性 Sticker Pack