我的屏幕上有两个UIScrollViews,我需要能够将UIView从一个滚动视图拖动到另一个滚动视图。
目前,我在UIView上有一个我想要移动的UILongGestureRecognizer,这样当用户开始拖动它时,我会按照触摸进行视图:
- (void)dragChild:(UILongPressGestureRecognizer *)longPress {
[[longPress view] setCenter:[longPress locationInView:[[longPress view] superview]]];
}
但是当我得到起始UIScrollView的边界时,视图会消失,因为它被锁定在该scrollview的边界内。
当我开始拖动时,有没有办法将其“弹出”滚动视图,以便我可以将其传送到其他滚动视图?
另外,我如何测试“下降”位置?我想知道它是否被删除了某个其他视图。
或者我是否会以错误的方式解决这个问题?
谢谢你们
答案 0 :(得分:1)
如果您需要将其从滚动视图拖到另一个滚动视图,请执行以下操作(伪代码)
开始拖动时请执行以下操作
//scrollView1 is the scroll view that currently contains the view
//Your view is the view you want to move
[scrollView1.superView addSubView:yourView];
现在在删除视图时,您需要知道它是否在其他scrollview
中//scrollView2 is the second scroll view that you want to move it too
//Your view is the view you want to move
CGPoint point = yourView.center;
CGRect rect = scrollView2.frame;
if(CGRectContainsPoint(rect, point))
{
//Yes Point is inside add it to the new scroll view
[scrollView2 addSubView:yourView];
}
else
{
//Point is outside, return it to the original view
[scrollView1 addSubView:yourView];
}
答案 1 :(得分:0)
这是一个未经考验的想法:
您可能必须小心使用坐标系,使用[UIView convertPoint:toView:]
之类的东西在移动物体时在视图的不同视角之间进行转换。