iOS-3D touch相关开发

原创 2016年03月23日 19:05:09
3D Touch,就是屏幕可感应不同的感压力度触控,有Peek Pop 两种新手势。
6s出来的时候,我对这增加的新功能激动不已 ~ ~
想着新技术,新玩意,App会越来越好的 ~ ~

3D Touch目前实现的功能,该实现的也实现了。现在把之前自己写项目的相关代码检出来供大家参考。

  • 写在前面
    是从iOS 9之后的系统支持的,UIViewController的.h文件中是这样地:
// Registers a view controller to participate with 3D Touch preview (peek) and commit (pop).
- (id <UIViewControllerPreviewing>)registerForPreviewingWithDelegate:(id<UIViewControllerPreviewingDelegate>)delegate sourceView:(UIView *)sourceView NS_AVAILABLE_IOS(9_0);
- (void)unregisterForPreviewingWithContext:(id <UIViewControllerPreviewing>)previewing NS_AVAILABLE_IOS(9_0);

so,注册前判断下系统还是相当有必要的,判断的宏定义我也给搞出来,哈哈

#define SC_IOS9 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9)

if (SC_IOS9)
{
    //注册
    if (SC_IOS9)
    {
        //注册
        [self registerForPreviewingWithDelegate:self sourceView:mealsHistoryTableView];;
}
  • 第一弹: 快捷图标进入App

    第一步:给快捷入口增加两个item

if (SC_IOS9)
    {
        //注册
        [self threeDTouchForQuickOpenTheAppWithApplication:application];
    }
#pragma mark - 3D图标快捷功能进入
/**
 *  3Dtouch快捷进入图标
 *
 *  @param application 当前程序
 */
-(void)threeDTouchForQuickOpenTheAppWithApplication:(UIApplication *)application{
    //第一个设置图标img
    UIApplicationShortcutIcon *icon1 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"chatShowCal"];
    //创建第一个快捷入口
    UIApplicationShortcutItem *item1 = [[UIApplicationShortcutItem alloc]initWithType:noti_3dtouch_chatWithShowCal localizedTitle:@"咨询瘦咖" localizedSubtitle:nil icon:icon1 userInfo:nil];

    UIApplicationShortcutIcon *icon2 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"camera"];
    UIApplicationShortcutItem *item2 = [[UIApplicationShortcutItem alloc]initWithType:noti_3dtouch_takePhotoOfFood localizedTitle:@"拍照上传" localizedSubtitle:nil icon:icon2 userInfo:nil];
    //添加进去
    application.shortcutItems = @[item1,item2];
    }
第二步:响应该快捷入口,苹果提供的接收方法是:
// Called when the user activates your application by selecting a shortcut on the home screen,
// except when -application:willFinishLaunchingWithOptions: or -application:didFinishLaunchingWithOptions returns NO.
- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void(^)(BOOL succeeded))completionHandler NS_AVAILABLE_IOS(9_0) __TVOS_PROHIBITED;

实现该方法 :

- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem
  completionHandler:(void(^)(BOOL succeeded))completionHandler
{
    //判断唯一标示 确定相对应的按钮
    if([shortcutItem.type isEqualToString:noti_3dtouch_chatWithShowCal]){
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [[NSNotificationCenter defaultCenter] postNotificationName:noti_3dtouch_chatWithShowCal object:nil];
        });

    }

    //判断唯一标示 确定相对应的按钮
    if([shortcutItem.type isEqualToString:noti_3dtouch_takePhotoOfFood]){
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [[NSNotificationCenter defaultCenter] postNotificationName:noti_3dtouch_takePhotoOfFood object:nil];
        });

    }
}

OK,你可以搞下来试试了。效果如下,估计想也想到是什么效果了。。
这里写图片描述

  • 第二弹:TableView实现Cell上的展示预览(peek)

,,随后见,饿的不行了,下班回家吃饭。

版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS开发中 Touch ID的使用

背景:有个朋友说有没有办法把iPhone上的相册、备忘录加密(现在的备忘录是苹果已经加入了加密功能),于是想了下要怎么实现保存的数据实现访问加密、解密功能。 要提高逼格肯定是使用指纹...
  • moxi_wang
  • moxi_wang
  • 2016年07月13日 15:33
  • 1929

跟我一起玩转Sencha Touch 移动 WebApp 开发(一)

跟我一起玩转Sencha Touch 移动 WebApp 开发(一) http://www.cnblogs.com/zhwl/p/3862554.html 1.目录 移动...
  • csnewdn
  • csnewdn
  • 2016年11月01日 17:34
  • 1017

iOS Touch ID 简易开发教程

基础知识 支持系统和机型 iOS系统的指纹识别功能最低支持的机型为iPhone 5s,最低支持系统为iOS 8,虽然安装iOS 7系统的5s机型可以使用系统提供的指纹解锁功能,但由于A...
  • CloudyBird
  • CloudyBird
  • 2016年03月18日 17:57
  • 756

移动端web开发---Touch事件详解

一、pc端事件回顾HTML事件、DOM0事件、DOM2事件事件对象。如果上述概念不清楚,请先去了解。二、移动端事件简介2.1 pc端事件在移动端的问题​ 移动设备主要特点是不配备鼠标,键盘也只是...
  • u012468376
  • u012468376
  • 2017年05月30日 10:09
  • 1368

sencha touch 入门系列 (二)sencha touch 开发准备

这是本人第一次写博客教程,没什么经验,文笔也不是很好,写这教程一方面为了巩固自己这段时间的学习成果,一方面帮助大家解决问题,欢迎大家多提建议,指出问题。接下来我们就开始我们的sencha touch开...
  • cjpx00008
  • cjpx00008
  • 2015年01月15日 14:27
  • 4659

iOS 3D Touch开发 很良心的版本原创!

之前一直在忙着维护项目,偶然的一天闲着玩手机玩到3Dtouch,看着效果挺不错的 于是就尝试着搜索了一下相关的文案,结果除了官网给的全英文api意外国内的基本都 是互相抄袭,我搜了37篇文章,29篇相...
  • werctzzz
  • werctzzz
  • 2015年12月17日 09:51
  • 3135

VR系列——Oculus Rift 开发者指南:六、Oculus触控

Oculus触控Oculus SDK为获取每个Oculus触控的位置、状态提供了API。这些数据体现在两个地方: ovrTrackingState::HandPoses[2]——返回每个触控的姿态以及...
  • huayuQA
  • huayuQA
  • 2017年06月22日 22:36
  • 766

IOS开发之 一起用Swift来玩一玩3D Touch

Swift 2.3 IOS 8.0 XCode 8.0 添加入口标签在这里只说下静态的好了,暂时还用不到动态的,e.g.UIApplicationShortcutItems ...
  • sbt0198
  • sbt0198
  • 2017年02月07日 14:45
  • 966

HTML5开发移动web应用——Sencha Touch篇(5)

这次主要介绍Sencha Touch中的XTemplate组件
  • fareise
  • fareise
  • 2016年01月24日 10:54
  • 1272

iOS开发笔记之十七——学习Cocoa和Cocoa Touch框架

1、 2、 3、参考资料
  • lizitao
  • lizitao
  • 2014年09月27日 22:41
  • 2913
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS-3D touch相关开发
举报原因:
原因补充:

(最多只允许输入30个字)