一、认识3D Touch
1、硬件和操作系统要求
iPhone 6s或者iPhone 6s Plus
操作系统要求 ios9+
2、3D Touch的交互效果
- QuickAction
操作:稍微用力按压应用icon按钮
效果:跳出一系列的快捷选项。用户选择一个快捷选项后,将会启动或者加载应用。
- Peek
操作:轻度力量按压某个视图
效果:此视图的周围内容会变得模糊,提示用户这个视图支持3D Touch
操作:中度力量按压某个视图
效果:跳出预览界面peek
操作:手指保持在peek页面上,向上滑动
效果:底部展示peek快速选项
- Pop
操作:在预览界面peek上重度力量按压
效果:会完全跳转到peek所预览的那个界面
二、3D Touch效果实现
3D Touch共有1、QuickAction 2、peek 3、pop 4、peek快捷选项四种功能,下面就分别讲解这四种功能,每种功能的做法都区分了步骤,非常简单,简直就是傻瓜式操作。
【1】QuickAction
第一步 注册:
AppDelegate.m的
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
代码示例:
*)localizedTitle;
第二步:实现AppDelegate.m中的代理方法,按不同控件做不同操作:
代码示例:
【2】peek
第一步:遵循 UIViewControllerPreviewingDelegate协议
第二步:实现UIViewControllerPreviewingDelegate代理方法
- (nullable UIViewController *)previewingContext:(id <UIViewControllerPreviewing>)previewingContext viewControllerForLocation:(CGPoint)location
1、创建预览VC
2、创建预览内容View
3、将预览内容View添加到预览VC上
4、返回预览VC
代码示例:
【3】Pop
第一步:遵循 UIViewControllerPreviewingDelegate协议
第二步:实现实现UIViewControllerPreviewingDelegate代理方法
- (void)previewingContext:(id <UIViewControllerPreviewing>)previewingContext commitViewController:(UIViewController*)viewControllerToCommit
这个代理方法可以自由定义任何功能,但一般的实现是直接跳转到peek所预览的页面上
代码示例:
【4】peek快速选项
第一步:找到实现peek的代理方法所返回的ViewController类
第二步:让peek的代理方法所返回的ViewController类遵循 UIPreviewActionItem协议
第三步:实现UIPreviewActionItem的代理方法
-(NSArray<id<UIPreviewActionItem>> *)previewActionItems
这个代理方法要求返回一个UIPreviewAction数组,UIPreviewAction类中提供了两个创建UIPreviewAction实例的类方法,每个UIPreviewAction实例的点击业务都在block中实现。
代码示例:
二、3D Touch四种效果小Demo