首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在3 ScrollViews [ iOS ]之间拖拽

在3 ScrollViews [ iOS ]之间拖拽
EN

Stack Overflow用户
提问于 2017-02-19 04:08:20
回答 1查看 82关注 0票数 0

是否可能有3个滚动视图(假设中间是用户查找对象的主要位置),然后用户可以拖动任何项并将其拖到右滚动视图或左滚动视图中,以便将该对象从中间移除,并根据使用情况将其从右或左删除,并假设用户将其删除到左侧,因此系统应该向左滚动视图添加新对象,但当用户删除该对象并返回到首选删除并添加到相同旧索引的主(中间)时,如果对象为2号,则该对象将在索引2 ..etc处添加和删除。

你能帮我做一下这个功能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-19 04:42:06

让我们称这些项目为model1 . model3

代码语言:javascript
复制
@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继承UIViewNSObject,在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),这样您就可以得到包含拖动点的任何视图。

例如,将model1mainView拖到leftView,可以从CGRectContainsPoint(leftview.frame, point)获得YES,然后从mainArray中删除model1并将model1放在leftArray中,同时需要重新布局这三个UIViews

以下是gif:https://pan.baidu.com/s/1slFBva9的共享URL

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42323519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档