iOS 3DTouch功能

Posted 水滴石穿-----坚持

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 3DTouch功能相关的知识,希望对你有一定的参考价值。

iOS 3DTouch功能

介绍

  • 3D Touch是一种立体触控技术,被苹果称为新一代多点触控技术,是在Apple Watch上采用的Force Touch,屏幕可感应不同的感压力度触控。3D Touch,苹果iPhone 6s的新功能。有Peek和Pop两种新手势。3D-Touch技术,相对于多点触摸在平面二维空间的操作,3D-Touch技术增加了对力度和手指面积的感知,可以通过长按快速预览/查看你想要的短信/图片/超链接等内容,Peek和Pop手势的响应时间可迅捷到10ms和15ms。

  • iPhone 6s之后的机型全都匹配了 3dtouch功能

主要应用

  • 主屏交互(Home Screen Interaction) - 适合跳转到简单界面
  • 预览和跳转(Peek and Pop)
  • LivePhoto

更改plist 实现

UIApplicationShortcutItems:数组中的元素就是我们的那些快捷选项标签。
UIApplicationShortcutItemTitle:标签标题(必填)
UIApplicationShortcutItemType:标签的唯一标识 (必填)
UIApplicationShortcutItemIconType:使用系统图标的类型,如搜索、定位、home等(可选)
UIApplicationShortcutItemIcon File:使用项目中的图片作为标签图标 (可选)
UIApplicationShortcutItemSubtitle:标签副标题 (可选)
UIApplicationShortcutItemUserInfo:字典信息,如传值使用 (可选)
	<key>UIApplicationShortcutItems</key>
	<array>
		<dict>
			<key>UIApplicationShortcutItemTitle</key>
			<string>测试一下1</string>
			<key>UIApplicationShortcutItemType</key>
			<string>test1</string>
		</dict>
        <dict>
            <key>UIApplicationShortcutItemTitle</key>
            <string>测试一下2</string>
            <key>UIApplicationShortcutItemType</key>
            <string>test2</string>
        </dict>
	</array>

主屏交互代码实现

   UIApplicationShortcutIconTypeCompose,
    UIApplicationShortcutIconTypePlay,
    UIApplicationShortcutIconTypePause,
    UIApplicationShortcutIconTypeAdd,
    UIApplicationShortcutIconTypeLocation,
    UIApplicationShortcutIconTypeSearch,
    UIApplicationShortcutIconTypeShare
  • appdelegate 中添加
- (void)setup3DTouch
    // 判断是否支持3DTouch
    
    if ([[UIApplication sharedApplication] respondsToSelector:@selector(shortcutItems)]) 
        UIApplicationShortcutIcon *icon1 = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeAdd];
        UIApplicationShortcutIcon *icon2 = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeAdd];
        UIMutableApplicationShortcutItem *item1 = [[UIMutableApplicationShortcutItem alloc] initWithType:@"addCar" localizedTitle:@"新增车辆盘查" localizedSubtitle:nil icon:icon1 userInfo:nil];
        UIMutableApplicationShortcutItem *item2 = [[UIMutableApplicationShortcutItem alloc] initWithType:@"addPerson" localizedTitle:@"新增人员盘查" localizedSubtitle:nil icon:icon2 userInfo:nil];
        [[UIApplication sharedApplication] setShortcutItems:@[item1,item2]];
    


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    [self setup3DTouch];
    return YES;




  • 实现代理方法
#pragma mark - 3DTouch action

- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler 
    
    NSString *type = shortcutItem.type;
    NSLog(@"shortcutItem:%@",type);

    if ([type isEqualToString:@"addCar"]) 
    
        UINavigationController *rootViewController = (UINavigationController*)[UIApplication sharedApplication].keyWindow.rootViewController;
        NSArray *viewControllers = rootViewController.viewControllers;
        MainViewController *navi = viewControllers[0];
        Test1ViewController *vc = [[Test1ViewController alloc] init];
        [navi.navigationController pushViewController:vc animated:YES];
        
    else 
        UINavigationController *rootViewController = (UINavigationController*)[UIApplication sharedApplication].keyWindow.rootViewController;
        NSArray *viewControllers = rootViewController.viewControllers;
        MainViewController *navi = viewControllers[0];
        Test2ViewController *vc = [[Test2ViewController alloc] init];
        [navi.navigationController pushViewController:vc animated:YES];
    

参考

本文来自博客园,作者:struggle_time,转载请注明原文链接:https://www.cnblogs.com/songliquan/p/15891364.html

以上是关于iOS 3DTouch功能的主要内容,如果未能解决你的问题,请参考以下文章

iOS系统3DTouch全解析

iOS系统3DTouch全解析

iOS 14 并未移除 3D Touch 功能,苹果官方:暂时不可用

iOS 3D Touch

由于 iOS 13 不支持 3D Touch,是不是有任何功能可以通过长按手势打开预览(预览)?

3DTouch桌面快捷方式