搜索
您的当前位置:首页正文

iOS11新特性:新增拖拽交互体验

来源:哗拓教育

          拖拽操作在iPad上是支持跨应用程序的,你可以从一个应用中拖取项目,通过Home键回到主界面并且打开另一个应用程序,然后将被拖拽的项目传递给这个应用程序中。在iPhone上,拖拽操作只支持当前应用程序内,你可以将某个元素从一个界面拖拽到另一个,这种维度的操作可以给设计人员更大的灵活性。拖拽操作被设计成系统管理,开发者不需要为App申请特殊的用户权限。

效果:

一、引言

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

效果如图:

二、涉及关键的概念

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

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

                                                          拖拽行为(UIDragInteraction)、

                                                          放置行为(UIDropInteraction)。

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

三、UIDragInteractionDelegate协议

开始拖拽

开始拖拽

对刚开始拖动处于 lift 状态的 item 会有一个 preview 的预览功效

对刚开始拖动处于 lift 状态的 item 会有一个 preview 的预览功效

向当前已经存在的拖拽事件中添加一个新的 UIDragItem

向当前已经存在的拖拽事件中添加一个新的 UIDragItem

拖拽不同阶段的动画

当 lift 动画准备执行的时候会调用该方法 当取消动画准备执行的时候会调用这个方法 当用户完成一次拖拽操作,并且所有相关的动画都执行完毕的时候会调用这个方法,这时候被拖动的item 应该恢复正常的展示外观 设置拖拽动作取消的视图动画 返回nil则消除动画

四、UIDropInteractionDelegate协议

这个方法返回是否响应此放置目的地的放置请求

这个方法返回是否响应此放置目的地的放置请求

这个方法当用户进行放置后会调用,可以从session中获取被传递的数据

这个方法当用户进行放置后会调用,可以从session中获取被传递的数据

设置以何种方式响应拖放会话行为

设置以何种方式响应拖放会话行为

设置放置预览动画

设置放置预览动画
Top