正如标题所说。在单个UITableView中重新排序是微不足道的,但iPad的屏幕足够大,可以同时显示多个UITableView。所以似乎应该有一种方法可以在两个UITableViews之间拖放UITableViewCell。有关最佳方法的任何想法?
正如标题所说。在单个UITableView中重新排序是微不足道的,但iPad的屏幕足够大,可以同时显示多个UITableView。所以似乎应该有一种方法可以在两个UITableViews之间拖放UITableViewCell。有关最佳方法的任何想法?
我的解决方案是使用自定义 UIGestureRecognizer
用于跟踪触摸事件,以及用于绘制拖动操作的单独视图。
这是因为 UIGestureRecognizer
不会阻止响应者链。
来自 UIGestureRecognizer
文档:
UIGestureRecognizer对象不在响应者链中,但观察对其视图及其视图的子视图进行了热门测试。
创建自定义 UIViewController
(DragAndDropViewController)并将其视图添加到要进行拖放操作的视图的父视图中。使用自定义手势识别器类将触摸信息转发到DragAndDropViewController。
源告诉您的DragAndDropViewController拖动源自何处(以及任何自定义信息)。控制器还应具有对放置目标的委托引用。发生丢弃时,向代理发送UITouch事件(根据Apple不推荐,但需要UITouch对象才能在目标视图中获取正确的位置)。
这就是我的DragAndDropViewController的样子:
@protocol DragAndDropDestination
@结束
@interface DragAndDropViewController:UIViewController { id _dropDestination; NSDictionary * _draggedItem; UIImageView * _icon; }
@property(nonatomic,assign)id dropDestination; @property(nonatomic,retain)NSDictionary * draggedItem;
// Source发送此消息 - (void)startDraggingWithItem:(NSDictionary *)item;
@结束