iOS9 3DTouch、ShortcutItem、Peek And Pop技术一览
3DTouch
UITouch类里API的变化
iOS9中添加的属性
altitudeAngle
当笔平行于平面时,该值为0
当笔垂直于平面时,该值为Pi / 2
estimatedProperties
当前触摸对象估计的触摸特性
返回值是UITouchPropertyies
updatedProperties
当前触摸对象已经更新的触摸特性
返回值是UITouchPropertyies
estimationUpdateIndex
当每个触摸对象的触摸特性发生变化时,该值将会单独增加
返回值是NSNumber
iOS9中添加的方法
- PreciseLocationInView:
- 当前触摸对象的坐标
- PrecisePreviousLocationInView:
- 当前触摸对象的前置坐标
- azimuthAngleInview:
沿着x轴正向的方位角
当与x轴正向方向相同时,该值为0
当view参数为nil时,默认为keyWindow
- azimuthUnitVectorInView:
当前触摸对象的方向上的单位向量
当view参数为nil时,默认为keyWindow
UIForceTouchCapability
UIForceTouchCapabilityUnknown
- 不能确定是否支持压力感应
UIForceTouchCapabilityUnavailable
- 不能支持压力感应
UIForceTouchCapabilityAvailable
- 可以支持压力感应
UITouchType
UITouchTypeDirect
- 垂直的触摸类型
UITouchTypeIndirect
- 非初值的触摸类型
UITouchTypeStylus
- 水平的触摸类型
UITouchProperties
UITouchPropertyForce
ShortcutItem
静态方式
- 打开Info.plist文件
- 在对应UIApplicationShortcutItems关键字下添加item
动态方式
修改当前应用程序的某个shortcutItem
//获取第0个shortcutItem id oldItem = [existingShortcutItems objectAtIndex: 0]; //将旧的shortcutItem改变为可修改类型shortcutItem id mutableItem = [oldItem mutableCopy]; //修改shortcutItem的显示标题 [mutableItem setLocalizedTitle: @"Click Lewis"];
获取当前应用程序的shortcutItems
//获取当前应用程序对象 UIApplication *app = [UIApplication sharedApplication]; //获取一个应用程序对象的shortcutItem列表 id existingShortcutItems = [app shortcutItems];
重置当前应用程序的shortcutItems
//根据旧的shortcutItems生成可变shortcutItems数组 id updatedShortcutItems = [existingShortcutItems mutableCopy]; //修改可变shortcutItems数组中对应index下的元素为新的shortcutItem [updatedShortcutItems replaceObjectAtIndex: 0 withObject: mutableItem]; //修改应用程序对象的shortcutItems为新的数组 [app setShortcutItems: updatedShortcutItems];
创建一个新的UIApplicationShortcutItem
初始化函数
- -initWithType:localizedTitle:localizedSubtitle:icon:userInfo:
- -initWithType:localizedTitle:
属性
- localizedTitle:NSString
- -localizedSubtitle:NSString
- -type:NSString
- -icon:UIApplicationShortcutIcon
- -userInfo:NSDictionary
- 只有只读特性,想要进行修改时,需要通过mutableCopy方法转变为
NSMutableApplicationShortcutItem
创建一个新的Item图标
- 初始化函数
- +iconWithType:
- +iconWithTemplateImageName:
- +iconWithContact:
当程序启动时
- 判断launchOptions字典内的UIApplicationLaunchOptionsShortcutItemKey是否为空
- 当不为空时,application:didFinishLaunchWithOptions方法返回false,否则返回true
- 在application:performActionForShortcutItem:completionHandler方法内处理点击事件
Peek and Pop
注册预览功能的代理对象和源视图
代理对象需要接受UIViewControllerPreviewingDelegate协议
@interface RootVC<UIViewControllerPreviewingDelegate> {} @end
代理对象实现协议内的Peek和Pop方法
@implementation RootVC - (UIViewController *)previewingContext:(id<UIViewControllerPreviewing>)context viewControllerForLocation:(CGPoint) point { UIViewController *childVC = [[UIViewController alloc] init]; childVC.preferredContentSize = CGSizeMake(0.0f,300f); CGRect rect = CGRectMake(10, point.y - 10, self.view.frame.size.width - 20,20); context.sourceRect = rect; return childVC; } - (void)previewContext:(id<UIViewControllerPreviewing>)context commitViewController:(UIViewController*)vc { [self showViewController:vc sender:self]; } @end
注册方法声明在UIViewController类内
[self registerForPreviewingWithDelegate:self sourceView:self.view];
转载地址:http://www.jianshu.com/p/74fe6cbc542b
iOS9 3DTouch、ShortcutItem、Peek And Pop技术一览相关推荐
- iOS9 3D Touch 标签菜单 peek and pop force 压力触控 功能开发高级版教程
iOS9 3D Touch 标签菜单 peek and pop force 压力触控 功能开发高级版教程 github地址: https://github.com/wyk125/3DTouchDem ...
- iOS9 3DTouch开发 知识点详解
本篇文章介绍3D Touch功能, 大体介绍一下: 下篇为大家提供一个3DTouch的简单Demo 增强版的Force Touch(压力触控)技术,Force Touch之前被应用在于Apple Wa ...
- 《Spark大数据分析:核心概念、技术及实践》大数据技术一览
本节书摘来自华章出版社<Spark大数据分析:核心概念.技术及实践>一书中的第1章,第1节,作者穆罕默德·古勒(Mohammed Guller)更多章节内容可以访问云栖社区"华章 ...
- 【知识图谱】知识图谱构建技术一览
[知识图谱]知识图谱构建技术一览 一.什么是知识图谱 二.知识图谱的分层架构 三.知识图谱构架技术 (一)数据获取(Data Acquisition) (二)信息抽取(Information Extr ...
- 知识图谱构建技术一览 #CSDN博文精选# #高效学习法# #系统化学习# #IT技术学习#
大家好~我是小C,又见面啦!"文章过滤器"精选大咖干货.助力学习之路. <5天20篇CSDN精选博文带你掌握系统化学习方法>专栏将挑选有关"系统化学习方法&q ...
- Stack:peek、pop、push、search
Java Stack 类 栈是Vector的一个子类,它实现了一个标准的后进先出的栈. 堆栈只定义了默认构造函数,用来创建一个空栈. 堆栈除了包括由Vector定义的所有方法,也定义了自己的一些方法. ...
- 栈中的peek()、pop()和push()、Add()方法
1. peek() :返回栈顶元素,不在堆栈中删除它. pop() :返回栈顶元素,并在进程中删除它. push():在栈顶增加元素 2.Java栈中add()和push()的不同之处 在日常使用中发 ...
- peek和pop的区别
相同点: 都可以取出栈顶的值 不同点: peek 不会改变栈的值(不删除栈顶的值) pop会把栈顶的值删除. 看完如果对你有帮助,感谢点赞支持! 如果你是电脑端,看到右下角的 "一键三连&q ...
- windows server 2008虚拟化技术一览
版本:Windows Server 2008 RC1 Enterprise 代号"Viridian"的"Hyper-V" 下载地址:Windows Server ...
最新文章
- C/C++ 混合编程
- xcode6 AsynchronousTesting 异步任务测试
- HDOJ 1082 模拟 水
- 手写Python中列表和字符串的反转
- CPU和微架构的概念
- jst获取不到springmvc中model数据
- LeetCode 705 Design HashSet 解题报告
- 计算机操作员实操高级试题,计算机操作员高级实操(以往考过,可做平时练习素材)答题.doc...
- java socket 对方关闭_java Socket判断对方是否已关闭连接
- JAVA进阶教学之(String类的构造方法)
- IDEA打开clone的项目编译时出现java: 程序包org.springframework.boot不存在。
- VS 2022 SVN 插件
- 可以免费文字识别app有哪些?有这3款app就能够实现提取文字自由
- coco2d-x学习第一章 codo2d-x 2.2.3+vs2010环境搭建和新建项目
- Mac Catalina系统关闭/打开开机duang音效
- Python一键更换证件照背景色
- PHPSTUDY端口被占用解决方法
- ISP算法介绍--------super Good
- DD-WRT 的优点
- 杰理之蓝牙连接成功自动播放【篇】
热门文章
- 鲍春健:从“走进客户”奔向“成为客户”
- 蓝桥杯JAVA数列求和
- 思维导图怎么画?新手5分钟教程分享
- 为什么最大的品牌信任Beaver Builder - 我应该选择哪个WordPress页面构建器
- 升级Android8.0系统原来APP图标变为小机器人的问题
- 华为机考,华为笔试,软件类,2020年8月19日题目,超详细解答。
- 递归实现对多层嵌套的对象数组依照某属性进行排序
- 蓄水池采样算法的python实现_蓄水池抽样算法(Reservoir Sampling)
- 简显易懂的TCP网络通信零起步(java网络画板,山寨腾讯会议)
- aspx创建控件时出错,服务器标记的格式不正确