3D Touch
一、认识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
代码示例:
第二步:实现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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?