是否可能有3个滚动视图(假设中间是用户查找对象的主要位置),然后用户可以拖动任何项并将其拖到右滚动视图或左滚动视图中,以便将该对象从中间移除,并根据使用情况将其从右或左删除,并假设用户将其删除到左侧,因此系统应该向左滚动视图添加新对象,但当用户删除该对象并返回到首选删除并添加到相同旧索引的主(中间)时,如果对象为2号,则该对象将在索引2 ..etc处添加和删除。
你能帮我做一下这个功能吗?
发布于 2017-02-19 04:42:06
让我们称这些项目为model1 . model3;
@property (nonatomic, strong) NSMutableArray *mainArray;
@property (nonatomic, strong) NSMutableArray *leftArray;
@property (nonatomic, strong) NSMutableArray *rightArray;
@property (nonatomic, strong) UIScrollView *mainView;
@property (nonatomic, strong) UIScrollView *leftView;
@property (nonatomic, strong) UIScrollView *rightView;您需要创建一个模型类,例如ItemModel继承UIView或NSObject,在ItemModel.h中创建一些属性(您需要哪些属性,以及UIScrollView包含该模型的属性)
首先,将所有模型放入主视图的数据源mainArray中,在self.view中显示模型并调用self.view bringSubviewToFront:,并为所有模型提供一个UIPanGestureRecognizer和一个响应UIPanGestureRecognizer的方法,以便您可以拖动它们。
这是最重要的部分:
因为您希望所有模型都包含在三个UIViews中,所以必须计算self.view.frame和三个UIView框架之间的模型框架。实际上,所有modelViews都由self.view包含,但是当可视化显示时,所有modelViews都包含在UIScrollViews中。
其次,您已经有了三个UIView的框架,当您拖动模型时,您可以得到关于拖动位置的CGPoint,然后调用方法CGRectContainsPoint(CGRect rect, CGPoint point),这样您就可以得到包含拖动点的任何视图。
例如,将model1从mainView拖到leftView,可以从CGRectContainsPoint(leftview.frame, point)获得YES,然后从mainArray中删除model1并将model1放在leftArray中,同时需要重新布局这三个UIViews。



以下是gif:https://pan.baidu.com/s/1slFBva9的共享URL
https://stackoverflow.com/questions/42323519
复制相似问题