博客> iOS11新特性 拖拽交互体验
iOS11新特性 拖拽交互体验
2017-11-24 16:12 评论:0 阅读:610 uncle鹏
ios webview
      拖拽操作在iPad上是支持跨应用程序的,你可以从一个应用中拖取项目,通过Home键回到主界面并且打开另一个应用程序,然后将被拖拽的项目传递给这个应用程序中。在iPhone上,拖拽操作只支持当前应用程序内,你可以将某个元素从一个界面拖拽到另一个,这种维度的操作可以给设计人员更大的灵活性。拖拽操作被设计成系统管理,开发者不需要为App申请特殊的用户权限。

效果: Enter your link description here:

一、引言 在iOS11中,你可以将图片直接拖入聊天软件进行发送,可以将文档、音乐、视频文件等文件拖入相应应用程序直接进行使用。这种拖拽操作交互极大的方便了手机的使用,丰富了手机的用户体验感。

效果如图:

二、涉及关键的概念 主要涉及的大体概括的对象就是: 拖拽源(按住需要拖拽的控件)、

                                                      放置目标(拖拽到的目的地)、

                                                      拖拽行为(UIDragInteraction)、

                                                      放置行为(UIDropInteraction)。

粗俗的过程:把拖拽行为加在拖拽源上,放置行为加在放置目标上,然后分别实现拖拽行为代理(UIDragInteractionDelegate)和放置行为代理方法(UIDropInteractionDelegate),就能实现拖拽效果了。

三、UIDragInteractionDelegate协议 开始拖拽

 屏幕快照 2017-11-09 16.48.16.png

对刚开始拖动处于 lift 状态的 item 会有一个 preview 的预览功效  屏幕快照 2017-11-09 16.48.26.png

向当前已经存在的拖拽事件中添加一个新的 UIDragItem  屏幕快照 2017-11-09 16.31.54.png

拖拽不同阶段的动画

当 lift 动画准备执行的时候会调用该方法
 屏幕快照 2017-11-09 16.32.14.png

当取消动画准备执行的时候会调用这个方法
 屏幕快照 2017-11-09 16.32.23.png

当用户完成一次拖拽操作,并且所有相关的动画都执行完毕的时候会调用这个方法,这时候被拖动的item 应该恢复正常的展示外观
 屏幕快照 2017-11-09 16.32.35.png

设置拖拽动作取消的视图动画 返回nil则消除动画
 屏幕快照 2017-11-09 16.32.49.png

四、UIDropInteractionDelegate协议 这个方法返回是否响应此放置目的地的放置请求

 屏幕快照 2017-11-09 16.42.55.png

这个方法当用户进行放置后会调用,可以从session中获取被传递的数据  屏幕快照 2017-11-09 16.43.32.png

设置以何种方式响应拖放会话行为  屏幕快照 2017-11-09 16.46.22.png

设置放置预览动画  屏幕快照 2017-11-09 16.43.42.png

简单的实现就是这样,里面还涉及到很多,就不一一讲述,可以详细见 Enter your link description here:

收藏
3
sina weixin mail 回到顶部