iOS9 3DTouch、ShortcutItem、Peek And Pop技术一览
[iOS]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];
iOS9 3DTouch、ShortcutItem、Peek And Pop技术一览的更多相关文章
- 一个简单的3DTouch、Peek和Pop手势Demo,附github地址
参考文章:http://www.jianshu.com/p/74fe6cbc542b 下载链接:https://github.com/banchichen/3DTouch-PeekAndPopGest ...
- 3D Touch开发全面教程之Peek and Pop - 预览和弹出
## 3D Touch开发全面教程之Peek and Pop - 预览和弹出 --- ### 了解3D Touch 在iPhone 6s和iPhone 6s Plus中Apple引入了3D Touch ...
- iOS9 3DTouch开发
在iOS 9中,新iPhone将第三维度添加到了用户界面. 用户现在可以用力摁下主屏按钮来快速调出应用提供的功能菜单. 在应用中,用户现在可以用力摁下视图以查看更多内容的预览并且快速访问一些功能. 想 ...
- Peek和Pop功能开发(3D Touch开发之一)
1.哪些设备支持3D Touch iPhone 6s/Plus.iPhone 7s/Plus.iPhone 8s/Plus.iPhone X (系统必须是iOS9或者更新的版本) 2.怎么实现Peek ...
- ios9 -3dtouch 手势添加到app上
模拟器实现3dtouch参考以下网站: http://my.oschina.net/u/2340880/blog/511509 - (BOOL)application:(UIApplication * ...
- iOS9 3DTouch 之 Home Screen Quick Actions
最后更新:2016-12-18 测试环境: Xcode8.1 一.前言 iOS9 已经过去一年了,3D Touch也在项目中实战过,但一直没有总结一下,现在新的项目也用到了3D Touch, 网上找了 ...
- 域名到站点的负载均衡技术一览(主要是探讨一台Nginx抵御大并发的解决方案)(转)https://www.cnblogs.com/EasonJim/p/7823410.html
一.问题域 Nginx.LVS.Keepalived.F5.DNS轮询,往往讨论的是接入层的这样几个问题: 1)可用性:任何一台机器挂了,服务受不受影响 2)扩展性:能否通过增加机器,扩充系统的性能 ...
- 常用的Websocket技术一览
1. 前言 Websocket是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议.WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据 ...
- JavaEE 7技术一览
参见此文: https://my.oschina.net/Barudisshu/blog/334903 perfect
随机推荐
- 【Todo】phantomjs获取动态网页
上面一篇文章,使用了cheerio, http, request等库,来抓取了Lofter上面的美女图片. 但是很多网页是动态渲染的.据了解,Phantom.js 可以获取动态渲染的网页 http:/ ...
- 如何在Centos7上安装zookeeper 多实例
一.如何在Centos7上安装zookeeper 多实例 cd /usr/local/src/ wget https://mirrors.tuna.tsinghua.edu.cn/apache/zoo ...
- 流畅的python第十二章继承的优缺点学习记录
子类化内置类型的缺点 多重集成和方法解析顺序 tkinter
- web前端入坑第二篇:web前端到底怎么学?干货资料! 【转】
http://blog.csdn.net/xllily_11/article/details/52145172 版权声明:本文为博主[小北]原创文章,如要转载请评论回复.个人前端公众号:前端你别闹,J ...
- humanoid ik unity 配件 animation的问题
遇到这样一个问题 想给角色设置ik 以实现代码控制的 更为自然的 角色动作 比如角色头跟随点击转动 身体也有相应扭转 https://docs.unity3d.com/Manual/InverseKi ...
- 详解java中的数据结构
线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构.这些类均在java.util包中.本文试图通过简单的描述,向读者阐述各个类的作用以 ...
- Android面试,简要介绍一下asynctask和handler的优缺点
1 )AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以 ...
- Spring框架学习(1)Spring简介
内容源自:Spring 框架简介 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序 ...
- 区域设置 ID (LCID) 表, 及获取方法
区域设置 ID (LCID) 表, 及获取方法 中国的区域设置 ID 是 2052, 如果经常打开微软软件的安装目录应该经常见到.获取很简单, 有现成的 API 函数: GetThreadLocale ...
- C基础测试
一.用指针的方法,把输入的一个字符串按逆序重新排序其字符,并输出. #include <stdio.h> #include <string.h> void main( ) { ...