玩转iOS开发:iOS 10 新特性《Siri Kit Intents Extension UI》
文章分享至我的个人技术博客: https://cainluo.github.io/14978567639492.html
Siri Kit Intents Extension UI
之前我们讲了Siri Kit Intents Extension
, 但并没有去讲到UI
的方面, 这次我们把最后一丢丢给讲完把.
这里所用的工程还是之前的, 如果不懂得朋友, 可以去看看的那篇文章, 里面也有工程的下载地址.
这里的工程是Objective-C
版本的, 如果要看Swift
版本, 可以到这里去查看.
定制UI
这里就不扯那么多废话了, 我们可以在SiriKitIntentsExtensionUI
文件夹里找到MainInterface.storyboard
文件, 在这里布置我们想要的UI
:
然后和Controller
关联起来:
具体实现
回到我们的IntentViewController.m
文件, 在- (void)configureWithInteraction:(INInteraction *)interaction context:(INUIHostedViewContext)context completion:(void (^)(CGSize))completion;
方法里开始写我们的代码:
// 截取发送消息的IntentINSendMessageIntent *intent = (INSendMessageIntent *)(interaction.intent);// 获取用户信息NSString *name = [[intent.recipients lastObject] displayName];NSString *content = intent.content;NSString *icon = [UserList checkUserWithName:name].userIcon;// 展示自己与接收人的头像self.userImageIcon.image = [UIImage imageNamed:@"icon3"];self.toUserImageIcon.image = [UIImage imageNamed:icon];// 改变标题self.sectionTitleLabel.text = [NSString stringWithFormat:@"与\"%@\"对话", name];// 发送的消息内容self.messageContentLabel.text = content;// 隐藏或显示控件self.sectionTitleLabel.hidden = !name.length;self.messageContentLabel.hidden = !content.length;self.messageBackgroundImage.hidden = !content.length;self.toUserImageIcon.hidden = !self.toUserImageIcon.image;if (completion) {completion(CGSizeMake([self desiredSize].width, 150));}
复制代码
效果:
虽然UI
已经展示了, 但特么好像有些多啊, 这里我们需要添加多一个协议, 并且是写一个协议的方法:
@interface IntentViewController () <INUIHostedViewSiriProviding>@end- (BOOL)displaysMessage {return YES;
}
复制代码
效果:
这里我们需要注意一点, 打开工程的配置, 看到SiriKitIntentsExtension
和SiriKitIntentsExtensionUI
的Copy Bundle Resources
有没有链接Assets.xcassets
, 如果没有链接上的话, 那就会造成本地图片没法展示:
工程地址
项目地址: https://github.com/CainRun/iOS-10-Characteristic/tree/master/10.Siri%20Intents%20UI
最后
码字很费脑, 看官赏点饭钱可好
玩转iOS开发:iOS 10 新特性《Siri Kit Intents Extension UI》相关推荐
- iOS开发--iOS应用架构谈 view层的组织和调用方案
前言 <iOS应用架构谈 开篇>出来之后,很多人来催我赶紧出第二篇.这一篇文章出得相当艰难,因为公司里的破事儿特别多,我自己又有点私事儿,以至于能用来写博客的时间不够充分. 现在好啦,第二 ...
- JDK 5 ~ 10 新特性倾情整理
转载自 JDK 5 ~ 10 新特性倾情整理 最近连 JDK11都在准备发布的路上了,大家都整明白了吗?也许现在大部分人还在用6-8,8的新特性都没用熟,9刚出不久,10-11就不用说了. 为了大家对 ...
- Java 10新特性
Java 10新特性 Java 10是其23年历史中最快的java版本.Java因其缓慢的增长和发展而受到批评,但Java 10刚刚破坏了这一概念.Java 10是一个具有许多未来变化的版本,其范围和 ...
- es6 获取对象的所有值_前端开发必备 - ES6 新特性之 Set和Map数据结构
往期回顾: 前端开发必备 - ES6 新特性之 let 和 const 命令 前端开发必备 - ES6 新特性之 变量的解构赋值 前端开发必备 - ES6 新特性之 字符串的拓展 前端开发必备 - E ...
- Java 10 新特性概述
Java 10是其23年历史中最快发布的java版本.Java因其缓慢的增长和发展而受到批评,但Java 10刚刚破坏了这个概念.Java 10是一个具有许多未来变化的版本,其范围和影响可能并不明显, ...
- 第五篇:Visual Studio 2008 Web开发使用的新特性
第五篇:Visual Studio 2008 Web开发使用的新特性 本篇翻译自MSDN. .NET Framwork 3.5与Visual Studio 2008 包含很多新特性.AJAX的Web开 ...
- C# 10 新特性 —— 补充篇
C# 10 新特性 -- 补充篇 Intro 前面已经写了几篇文章介绍 C# 10 新特性的文章,还有一些小的更新 Constant interpolated strings 在之前的版本中,如果想要 ...
- C# 10 新特性 —— 插值字符串优化
C# 10 新特性 -- 插值字符串优化 Intro 字符串应该是我们平时使用的最多的一个类型,从 C# 6 开始我们开始支持了插值字符串,使得我们可以更方便的进行字符串的操作,现在很多分析器也推荐我 ...
- C# 10 新特性 —— Lambda 优化
C# 10 新特性 -- Lambda 优化 Intro C# 10 对于 Lambda 做了很多的优化,我们可以在 C# 中更加方便地使用委托和 Lambda 了,下面就来看一些示例 Lambda ...
- C# 10 新特性 —— CallerArgumentExpression
C# 10 新特性 -- CallerArgumentExpression Intro C# 10 支持使用 CallerArgumentExpression 来自动地获取调用方的信息,这可以简化我们 ...
最新文章
- 自学python需要多长时间-零基础自学python要多久?
- js获取网页的各种高度
- js ==与=== 的区别
- Element-ui自定义主题换肤
- 当代家长现状。。 | 今日最佳
- 电脑显示器闪屏_Win7系统电脑显示器屏幕闪屏的解决办法
- mysql 主主切换_mysql 主-主配置中进行切换
- python 菜鸟-Python3 模块
- [UFLDL] Exercise 1C:Softmax Regression
- [原创]Ajax UpLoadFile 多个大文件上传控件及应用范例
- linux中sed的用法
- flutter 全选_Android Studio写flutter快捷键
- IP地址归属地那些事
- 1分钟读懂人口普查大数据——第七次人口普查数据可视化BI分析
- 计算机网络学习 - UDS协议
- html5svg在线编辑器,新技术应用——HTML5内联SVG
- 正确的座机号码格式_简历里的手机号及座机号的标准写法是什么?正确书写才更可能求职成功!...
- 2021电赛F题智能送药小车程序代码
- 北邮计算机专硕在微软实习转正,【微软中国(Microsoft)实习生面试】很随意很简单,毕竟实习生转正比率很低。-看准网...
- 服务器受到DDOS攻击怎么办