玩转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;方法里开始写我们的代码:

    // 截取发送消息的Intent
    INSendMessageIntent *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


最后

码字很费脑, 看官赏点饭钱可好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值