将图像从一个视图拖到另一个视图在iphone / ipad中

时间:2011-07-28 05:54:44

标签: iphone ipad uiview

我面临以下问题: - 请看下面的图像,我想要的是: - enter image description here

我想将默认图像从视图1拖动到视图2,图像必须始终在视图1中,因此它不像触摸移动到拖动图像。 我尝试了很多东西,但我成功地将图像从一个视图拖到另一个视图但在视图2中我无法获得触摸点所以它只是添加thr作为框架 但是我无法在view2甚至view2中触摸图像 我想做其他功能,如缩放和其他功能,但首先想在view2中获得触摸点。 我正在给出关于这个问题的描述图片。

编辑过的问题是: -

我已经完成了这个简单的演示,我正在将一个视图转移到另一个视图,并且在获得view2点之后它已经处于极限边界。  但我怎样才能得到默认的东西。 我将修改此代码,我将在此视图中添加图像。但它只是在这里显示我的想法,所以在这里指导我。

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{

    UITouch *touch = [touches anyObject];   
    if ([touch view] == view3) {
        CGPoint location = [touch locationInView:self.view];
        view3.center = location;        
        return;
    }
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
        int tmpValue = 0;
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:0.5];          
        {
            onceDone = TRUE;
            if(onceDone == TRUE)
            {
                UITouch *touch = [touches anyObject];
                CGPoint pt = [touch locationInView:self.view];
                NSLog(@"X = %f y=%f",pt.x,pt.y);
                view3.center = pt;
                if(view3.frame.origin.x < view2.frame.origin.x )
                   //view3.frame.origin.x < view2.frame.origin.x)
                    [view3 setFrame:CGRectMake(159,view3.frame.origin.y, view3.frame.size.width, view3.frame.size.height)];

            }



        }
    [UIView commitAnimations];
    }

请帮帮我。 迫在眉睫。 提前致谢

2 个答案:

答案 0 :(得分:3)

如果您正在使用平移手势,则使用touchesMoved方法拖放图像。将view1和view2的超级视图设置为相同的UIView,并根据该公共超级视图计算您的手势位置或触摸点。这意味着您的view1和view2将位于同一视图中,每个subView(图像)也仅添加到主视图中。因此,您可以在主视图上随意移动图像,并可以对它们执行任何操作。

答案 1 :(得分:1)

我们一直在处理类似的问题,我们已经解决了这个问题:

  1. 我们在每个按钮上添加了UIPanGestureRecognizer。

  2. 当我们检测到平移手势开始时,我们创建了我们想要拖动的对象(在这种情况下,它可能是您图像的副本)。你必须设置一个矩形等于按钮,或者如果你在另一个视图中创建对象,你应该转换对象坐标,使对象看起来与按钮位于相同的位置,但在他的视图中。

  3. 之后我们移动最后创建的对象,而不是移动按钮。

  4. 也就是说,这里的诀窍是UIPanGestureRecognizer一直有效,直到你触摸屏幕,但是当你为所有屏幕移动手指时触发它,而不仅仅是在按钮内部!

    我希望这适合你。