不要使用自来水的手势在所有的事实。
秘诀就是使用imageView的superview。
您需要3图像视图的....
UIImageView *ImageViewA
UIImageView *ImageViewB
UIImageView *DraggableImageView
假设你点击屏幕和主机观点得到了的touchesBegan事件......如果你把ImageViewA并测试它的矩形与下面的方法:
[rect containsPoint:touchPoint];
如果这是真的,你已经成功地触动了第一ImageView的...开始在touchesMoved的拖动操作像如下:
如果你拿ImageViewA.superview你会得到视图的主视图...主视图应该再收到以下命令:
[newDraggableImageView setFrame:ImageViewA.frame];
[newDraggableImageView setImage:ImageViewA.image];
[hostView addSubview:newDraggableImageView];
现在你跟踪与UIResponder方法touchesBegain touchesMoved主视图触摸事件和touchesEnded
当你经历touchesMoved:将运动的坐标发送到newDraggableImageView的框架中...
因为它正在拖动...一项所述的方法touchesEnded:
如果图像的帧为第二拖动点的框内然后可以设置最终图像视图
if ([frame containsRect:anotherFrame])
ImageViewB.image = draggableImageView.image;
对不起这是伪代码...希望你了解逻辑流程...将图像添加到主机视图...或应用程序的窗口视图并移动它...一旦移动结束..测试imageView的位置并适当设置新的图像视图。 ..
GOODLUCK!和快乐编码!
好,知道了!谢谢。我还有一个疑问是,在这种情况下,如何将两个图像视图移动(交换)到指定的交换位置。 – Getsy 2013-02-19 20:25:29
@Getsy查看示例代码。请注意,如果您在“NSArray”中获得图像视图,则这类内容总是会简化,因此您可以通过它们快速枚举。 – Rob 2013-02-19 21:19:46