拖放交互技术全解析
1. 缓慢数据交付
当你作为拖放交互委托,在 dropInteraction(_:performDrop:) 方法中请求数据时,无论是调用会话的 loadObjects(ofClass:) 还是项目提供者的 loadObject(ofClass:) ,数据到达时,完成函数会异步调用。这可能会花费相当长的时间,具体取决于实际情况。
默认情况下,如果数据交付耗时过长,运行时会弹出一个对话框来跟踪数据交付的整体进度,并允许用户取消操作。如果你愿意,也可以用自己的进度界面替换运行时的对话框。具体操作如下:
- 将拖放会话的 progressIndicatorStyle 设置为 .none ,以抑制默认对话框。
- 确保你的界面为用户提供取消操作的方式。
你可以通过 Progress 对象了解数据供应情况。 Progress 对象有 fractionCompleted 和 isFinished 属性,你可以通过键值观察来跟踪这些属性,从而更新界面,也可以通过告诉 Progress 对象取消来终止加载过程。获取 Progress 对象有两种方式:
- 会话将一个整体的 Progress 对象作为其 progress 属性提供。
- 单个项目提供者的
超级会员免费看
订阅专栏 解锁全文
7

被折叠的 条评论
为什么被折叠?



