3D touch功能

闲来无事,突然想学学ios9出的3D touch功能,于是开始网上找资料,看kpi,学习了两个小时,还算有点收获。特此记录一下,方便自己以后复习,方便大家学习一下。

首先,好多人可能不是特别了解3D touch这个功能,其实我的理解就是苹果根据按压的力度给应用的不同的反馈。在图标上按压就是弹出几个快捷的选项,方便用户直接进入应用中的一些功能。其次就是在应用中,用力按压产生预览效果。自己感觉就是这两个主要功能,所以分别学习了一下。注意,这个功能请在6s及以上的真机上测试。

1.首先说一下在桌面上按压图标,弹出列表框这个功能。

创建一个item

UIMutableApplicationShortcutItem *shorcutItem = [[UIMutableApplicationShortcutItemalloc] initWithType:@"111"localizedTitle:@"aaa"];

创建图标

UIApplicationShortcutIcon *icon = [UIApplicationShortcutIconiconWithType:UIApplicationShortcutIconTypeFavorite];

shorcutItem.icon = icon;

设置显示标题

shorcutItem.localizedTitle =@"bbbbbb";


创建第二个item

UIMutableApplicationShortcutItem *shorcutItem2 = [[UIMutableApplicationShortcutItemalloc] initWithType:@"111" localizedTitle:@"aaa"];

创建第二个图标

UIApplicationShortcutIcon *icon2 = [UIApplicationShortcutIconiconWithTemplateImageName:@"about_ipad@2x.png"];

shorcutItem2.icon = icon2;

设置第二个标题

shorcutItem2.localizedTitle =@"ccccccc";

设置子标题

shorcutItem2.localizedSubtitle =@"2222222";    

将item给application.shortcutItems赋值

application.shortcutItems =@[shorcutItem,shorcutItem2];


当然有快捷创建方式

UIMutableApplicationShortcutItem *shorcutItem = [[UIMutableApplicationShortcutItem alloc] initWithType:<#(nonnull NSString *)> localizedTitle:<(NSString *)> localizedSubtitle:<(NSString *)> icon:<(UIApplicationShortcutIcon *)> userInfo:<(NSDictionary *)>]

其实现在你按压图标也有弹出框了,但是我点击列表后想进入自己想进入的viewcontroller怎么办,继续找,发现了下边这个方法

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

    lcsViewController *viewc = [[lcsViewControlleralloc] init];

    [self.window.rootViewControllerpresentViewController:viewc animated:YEScompletion:^{

        

    }];

}


这不就是点击item后的方法吗,于是做下处理,搞定。。。。

图标的3D touch就到这里,然后说进入应用后的使用。


2.其实进去后的应用方法就比较简单了,在viewcontroller中设置viewcontroller遵守

UIViewControllerPreviewingDelegate代理

然后,在viewDidLoad里注册一个代理

[selfregisterForPreviewingWithDelegate:selfsourceView:self.view];

最后,实现代理中的方法

- (UIViewController *)previewingContext:(id<UIViewControllerPreviewing>)previewingContext viewControllerForLocation:(CGPoint)location{

    if ([self.presentedViewControllerisKindOfClass:[lcsViewControllerclass]]) {

       return nil;

    }

    lcsViewController *vc = [[lcsViewControlleralloc] init];

    return vc;

}


大概就是这样,如果要应用到程序,还需要自己细化一下


效果图:









  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值