iOS的3D Touch学习

来源:互联网 发布:辐射4室内光源优化 编辑:程序博客网 时间:2024/05/18 20:52

3D Touch有三大模块:

  • peek and pop

类似于系统邮件、QQ这样的App,在消息列表页面按压某条邮件或会话,则会弹出这个邮件或会话的阅览,如果继续施加压力按压,则会弹出完整的邮件详情页面或会话对话框。

  • Home Screen Quick Actions

用力按压App图标,弹出App的快速入口,通过快速入口直接进入到想要的功能页面。

通过主屏幕的应用Icon,我们可以用3D Touch呼出一个菜单,进行快速定位应用功能模块相关功能的开发

  • Force Properties

iOS9为我们提供了一个新的交互参数:力度。我们可以检测某一交互的力度值,来做相应的交互处理。例如,我们可以通过力度来控制快进的快慢,音量增加的快慢等。

一.Home Screen Quick Actions开发指南

3D Touch快速入口标签有两种添加方式:一种是静态添加,在工程中的info.plist文件中添加相关项目。通过这种方式添加的标签,在app第一次运行前,就可以唤出这些标签;另一种是动态添加,通过代码给App添加快速入口。这种方式添加的标签,第一次运行App前是看不到这些标签的,必须先运行一次App,以后就可以唤出这些标签了。

  1. 静态添加入口标签

静态添加入口标签不需要写代码,只需要在info.plist文件中添加相关功能设置即可。不过因为没有语句提示,所以我们只能一个字母一个字母的去添加,这一点不是很友好。

我们需要在info.plist中添加如下信息:

UIApplicationShortcutItems,是一个数组类型,数组中的每一个元素表示一个入口标签。

Item0,是数组中的一个元素,字典类型。在这个字典中配置各个标签的相关属性。

  1. 动态添加入口标签

这种方法需要我们写代码来添加,首先来认识三个类:

  • UIApplicationShortcutItem:创建标签的类
  • UIMutableApplicationShortcutItem:创建可变标签的类
  • UIApplicationShortcutIcon:创建标签ICON的类

创建一个新工程,然后在工程中根视图的viewDidLoad方法中添加如下代码:

    // 创建标签的ICON图标。    UIApplicationShortcutIcon *icon = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeAdd];    // 创建一个标签,并配置相关属性。    UIApplicationShortcutItem *item = [[UIApplicationShortcutItem alloc] initWithType:@"two" localizedTitle:@"么么哒" localizedSubtitle:@"爱你呦" icon:icon userInfo:nil];    // 将标签添加进Application的shortcutItems中。    [UIApplication sharedApplication].shortcutItems = @[item];

如果系统图标不满足需求,可以使用+ (instancetype)iconWithTemplateImageName:(NSString *)templateImageName;添加自定义图片作为标签,需要注意的是:图片必须预先添加进bundle

3.检测App启动方式

标签添加完成了,现在我们可以通过两种途径来启动App,一种是传统的点击icon图标启动App,另一种是通过按压icon唤起快速入口,通过快速入口进入App中指定的功能页面。我们要如何检测是从哪里进入App呢?

iOS9在AppDelegate中提供了一个新方法:

- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler,

如果App是从快速入口启动的,则会执行这个方法。该方法的shortcutItem参数携带了从快速入口进入app时的标签参数。

如果是从快速入口启动的App,我们可以判断shortcutItem.localizedTitle属性的值来判断是从哪一个标签进入的App。

来一个需求:如果是从“点我”这个标签进来的,我们把页面背景颜色修改为黄色,如果是从“么么哒”这个标签进来的,我们讲页面背景颜色修改为红色。代码如下:

0 0
原创粉丝点击