3DTouch的分享菜单是上架后系统自动加上的,其他的菜单需要我们自定义。

1.定义菜单项Model

import Foundationenum ShortcutItem {case scancase sendcase receivecase qrcodevar type: String {switch self {case .scan:return "com.app.scan"case .send:return "com.app.send"case .receive:return "com.app.receive"case .qrcode:return "com.app.qrcode"}}var title: String {switch self {case .scan:return "Scan".localizedcase .send:return "Send".localizedcase .receive:return "Receive".localizedcase .qrcode:return "My referral code".localized}}var imageName: String {switch self {case .scan:return "shortcut_scan"case .send:return "shortcut_send"case .receive:return "shortcut_receive"case .qrcode:return "shortcut_qrcode"}}var icon: UIApplicationShortcutIcon {return UIApplicationShortcutIcon(templateImageName: self.imageName)}
}

2.在APPDelegate中设置ShortcutItems

func createShortcutItems() {if #available(iOS 9.1, *) {var itemArray: [UIApplicationShortcutItem] = []for item in [ShortcutItem.scan, ShortcutItem.send, ShortcutItem.receive, ShortcutItem.qrcode] {itemArray.append(UIApplicationShortcutItem(type: item.type, localizedTitle: item.title, localizedSubtitle: nil, icon: item.icon, userInfo: nil))}UIApplication.shared.shortcutItems = itemArray}}

3.实现点击Item事件

func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) {guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { return }guard let main = appDelegate.coordinator.coordinators.first as? MainCoordinator else { return }switch shortcutItem.type {case ShortcutItem.scan.type:print("scan")case ShortcutItem.send.type:print("send")case ShortcutItem.receive.type:print("receive")case ShortcutItem.qrcode.type:print("qrcode")default:break}}

Swift 3DTouch开发 自定义ShortcutItems相关推荐

  1. iOS开发 swift 3dTouch实现 附代码

    iOS开发 swift 3dTouch实现 附代码 一.What? 从iphone6s开始,苹果手机加入了3d touch技术,最简单的理解就是可以读取用户的点击屏幕力度大小,根据力度大小给予不同的反 ...

  2. 从Java/Android到Swift iOS开发:语言与框架对比

    今天分享的主题是Java/Android开发人员如何快速上手Swift iOS开发.主要内容如下: WhyFrom Java/Android to Swift Swift语言为什么值得学习? Java ...

  3. Android Swift iOS开发:语言与框架对比

    转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_sour ...

  4. Swift游戏开发实战教程(大学霸内部资料)

    Swift游戏开发实战教程(大学霸内部资料) 试读下载地址:http://pan.baidu.com/s/1sj7DvQH 介绍:本教程是国内第一本Swift游戏开发专向资料. 本教程详细讲解记忆配对 ...

  5. Android开发自定义View

    Android中View组件的作用类似于Swing变成中的JPanel,它只是一个空白的矩形区域,View组件中没有任何内容.对于Android应用的其他UI组件来说,它们都继承了View组件,然后在 ...

  6. 开发自定义JSF组件(4) 保存状态与恢复状态

    2019独角兽企业重金招聘Python工程师标准>>> 完整的教材: 开发自定义JSF组件(1) HelloWorld 开发自定义JSF组件(2) 使用Render渲染器 开发自定义 ...

  7. integer加1_利用Abaqus UEL开发自定义单元1

    1. 简介 在Abaqus/Standard模块中,用户可以利用子程序UEL来开发自定义单元,用以实现一些通过Abaqus内置单元无法实现的功能.如果编写恰当,用户自定义单元可以正常使用Abaqus/ ...

  8. 【Android开发】用户界面设计-开发自定义的View

    效果图: Android中,所有的UI界面都是由View类和ViewGroup类及其子类组合而成的.View是所有UI组件的基类(父类),为ViewGroup类是容纳这些UI组件的容器,其本身也是Vi ...

  9. java自定义菜单跳转页面_微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解...

    微信公众号开发 自定义菜单 请先读完本文再进行配置开发 请先前往微信平台开发者文档阅读"网页授权获取用户基本信息"的接口说明 在微信公众账号开发中,往往有定义一个菜单,然后用户点击 ...

最新文章

  1. 1521 error1
  2. Centos配置nginx反向代理8080端口到80端口
  3. ODBC驱动,没装怎么办
  4. 关于laravel 框架运行数据库迁移文件的一个小坑以及常用php artisan命令
  5. CentOS 5.x 系统下使用yum 升级php到5.2.x
  6. 基于 DataLakeAnalytics 做跨地域的数据分析
  7. 数据结构与算法(一):排序算法之 - 快速排序(详细步骤图解,附代码)
  8. 矩形做成翻页的效果html5,HTML5 在canvas中绘制矩形附效果图
  9. shell的logo含义_Shell(壳牌石油)标志历史
  10. 7-44 基于词频的文件相似度 (30 分)(思路加详解+set容器简便做法)兄弟们冲呀呀呀呀呀 今天你AC了吗
  11. python时间模块提取时间_【转载】python自动提取文本中的时间(包含中文日期)...
  12. Android 系统性能优化(75)---MTK 平台perfomance问题的基本信息确认
  13. 用PHP制作饼图调查表
  14. HNU 程序设计课 函数公式题
  15. 【Qt教程】1.2 - Qt5 新建工程
  16. SVG 图标和sketch 模版免费网站
  17. json字段名不一致的问题
  18. idea开发SSM框架乐器租赁网站管理系统 (javaweb-php-asp.netC#-j2ee-springboot)
  19. Spring Boot 3.x 系列【23】集成Spring WebFlux开发响应式应用程序
  20. (附源码)node.js学生钟点工管理系统 毕业设计 290011

热门文章

  1. python智能决策系统_智能风控决策引擎系统可落地实现方案(三)模型引擎实现...
  2. 基于GUI混沌系统图像加密解密
  3. 微信小程序css篇----字体(Font)
  4. 案例7-1.3 寻找大富翁 (25分)
  5. UE4 更改工程文件名字的方法
  6. SAP 货物移动相关Bapi
  7. 校赛热身赛 Problem D. Unsolved Mystery
  8. [Flink 日记]Exceeded checkpoint tolerable failure threshold.
  9. android m镜像,索尼为多部机型放出Android M AOSP镜像包
  10. 三、自定义Abp Vnext框架代码生成模板