iOS11 DragAndDrop适配之UISpringLoadedInteraction

这是iOS11 Drag&Drop适配的一系列文章

我们可以在iOS的human-interface-guideline里面看到,drag&drop下提到了要尽量去适配UISpringLoadedInteraction。什么是UISpringLoadedInteraction呢,最好的例子就是UINavigationBarItem,iOS11原生的UINavigationBarItem就已经适配了UISpringLoadedInteraction。当我们将一个Drag操作移动到UINavigationBarItem的时候,我们可以看到这个item被选中,过了一会开始闪烁,并进行对应的操作。这个效果就是配置了UISpringLoadedInteraction。更多的运用,可以参考原生的备忘录。

从guideline我们可以看到,如果我们进行Drag&Drop适配的时候,一般情况下都会需要进行页面跳转,这时候我们需要对不同View添加UISpringLoadedInteraction进行操作。

简单的代码如下:


UISpringLoadedInteraction *springInteraction = [[UISpringLoadedInteraction alloc] initWithActivationHandler:^(UISpringLoadedInteraction * _Nonnull interaction, id<UISpringLoadedInteractionContext>  _Nonnull context) {
            HandleViewActivationBlock block = [weakSelf getHandleViewActivationBlock];
// Do something here
        }];

[self addInteraction:springInteraction];

因为需要对大量的View,Cell以及按钮进行配置,需要写大量的重复代码,在这里我写了一个UIView的Category,只要两个方法就可以就View进行UISpringLoadedInteraction的适配。

Demo预览:


WechatIMG318.jpeg

地址:
https://github.com/kingandyoga/UserfulUISpringLoadedInteraction

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 167,496评论 24 707
  • 不断完善中。。。2017.10.02 新增 iPhone X 适配官方中文文档 更新iOS11后,发现有些地方需要...
    si1ence阅读 13,971评论 42 141
  • WWDC 2017 刚结束,虽然如预期的一样,缺少意料之外的惊喜,但依旧有不少新的特性和 API 值得圈点。抛开 ...
    MrPeak阅读 4,602评论 2 37
  • 我是一个农民的孩子, 不擅长表达, 这一点很明显。 在周而复始的岁月里, 每日盘算的是, 精耕细作之后的年景如何?...
    金胡杨阅读 184评论 0 1
  • 佛说:前世五百个的回眸,才能换来今生的一次擦身而过,宝贝,而今你我脐带缔结下的情缘又将是走过多少个轮回呢? ...
    sun熙熙微光ny阅读 121评论 0 0