文章分享至我的个人技术博客: 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;
}
复制代码

效果:

这里我们需要注意一点, 打开工程的配置, 看到SiriKitIntentsExtensionSiriKitIntentsExtensionUICopy 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》相关推荐

  1. iOS开发--iOS应用架构谈 view层的组织和调用方案

    前言 <iOS应用架构谈 开篇>出来之后,很多人来催我赶紧出第二篇.这一篇文章出得相当艰难,因为公司里的破事儿特别多,我自己又有点私事儿,以至于能用来写博客的时间不够充分. 现在好啦,第二 ...

  2. JDK 5 ~ 10 新特性倾情整理

    转载自 JDK 5 ~ 10 新特性倾情整理 最近连 JDK11都在准备发布的路上了,大家都整明白了吗?也许现在大部分人还在用6-8,8的新特性都没用熟,9刚出不久,10-11就不用说了. 为了大家对 ...

  3. Java 10新特性

    Java 10新特性 Java 10是其23年历史中最快的java版本.Java因其缓慢的增长和发展而受到批评,但Java 10刚刚破坏了这一概念.Java 10是一个具有许多未来变化的版本,其范围和 ...

  4. es6 获取对象的所有值_前端开发必备 - ES6 新特性之 Set和Map数据结构

    往期回顾: 前端开发必备 - ES6 新特性之 let 和 const 命令 前端开发必备 - ES6 新特性之 变量的解构赋值 前端开发必备 - ES6 新特性之 字符串的拓展 前端开发必备 - E ...

  5. Java 10 新特性概述

    Java 10是其23年历史中最快发布的java版本.Java因其缓慢的增长和发展而受到批评,但Java 10刚刚破坏了这个概念.Java 10是一个具有许多未来变化的版本,其范围和影响可能并不明显, ...

  6. 第五篇:Visual Studio 2008 Web开发使用的新特性

    第五篇:Visual Studio 2008 Web开发使用的新特性 本篇翻译自MSDN. .NET Framwork 3.5与Visual Studio 2008 包含很多新特性.AJAX的Web开 ...

  7. C# 10 新特性 —— 补充篇

    C# 10 新特性 -- 补充篇 Intro 前面已经写了几篇文章介绍 C# 10 新特性的文章,还有一些小的更新 Constant interpolated strings 在之前的版本中,如果想要 ...

  8. C# 10 新特性 —— 插值字符串优化

    C# 10 新特性 -- 插值字符串优化 Intro 字符串应该是我们平时使用的最多的一个类型,从 C# 6 开始我们开始支持了插值字符串,使得我们可以更方便的进行字符串的操作,现在很多分析器也推荐我 ...

  9. C# 10 新特性 —— Lambda 优化

    C# 10 新特性 -- Lambda 优化 Intro C# 10 对于 Lambda 做了很多的优化,我们可以在 C# 中更加方便地使用委托和 Lambda 了,下面就来看一些示例 Lambda ...

  10. C# 10 新特性 —— CallerArgumentExpression

    C# 10 新特性 -- CallerArgumentExpression Intro C# 10 支持使用 CallerArgumentExpression 来自动地获取调用方的信息,这可以简化我们 ...

最新文章

  1. 自学python需要多长时间-零基础自学python要多久?
  2. js获取网页的各种高度
  3. js ==与=== 的区别
  4. Element-ui自定义主题换肤
  5. 当代家长现状。。 | 今日最佳
  6. 电脑显示器闪屏_Win7系统电脑显示器屏幕闪屏的解决办法
  7. mysql 主主切换_mysql 主-主配置中进行切换
  8. python 菜鸟-Python3 模块
  9. [UFLDL] Exercise 1C:Softmax Regression
  10. [原创]Ajax UpLoadFile 多个大文件上传控件及应用范例
  11. linux中sed的用法
  12. flutter 全选_Android Studio写flutter快捷键
  13. IP地址归属地那些事
  14. 1分钟读懂人口普查大数据——第七次人口普查数据可视化BI分析
  15. 计算机网络学习 - UDS协议
  16. html5svg在线编辑器,新技术应用——HTML5内联SVG
  17. 正确的座机号码格式_简历里的手机号及座机号的标准写法是什么?正确书写才更可能求职成功!...
  18. 2021电赛F题智能送药小车程序代码
  19. 北邮计算机专硕在微软实习转正,【微软中国(Microsoft)实习生面试】很随意很简单,毕竟实习生转正比率很低。-看准网...
  20. 服务器受到DDOS攻击怎么办

热门文章

  1. 开源游戏服务器框架汇总
  2. 怎么给当前计算机添加一个用户,电脑如何设置新用户 电脑创建新用户的方法...
  3. 乐固加固APP后无法启动
  4. 什么蓝牙耳机颜值高音质好?颜值高音质好的蓝牙耳机推荐
  5. Java技术实验三 货物进销管理系统
  6. Opencv4.5.1 微信二维码识别功能 QRCode 编译与使用 C++
  7. 记录一次服务器被攻击的经历
  8. 基于HSI颜色模型实现去除照片的“红眼现象”
  9. 转:理想主义终结年代的七种兵器
  10. 微信暗黑模式终于来啦