触摸对象本身时拖动图像

时间:2014-02-17 11:46:43

标签: ios objective-c

我创建了一个非常简单的应用程序,其中包含一个可拖动的UIImageView,但我遇到了一个问题,即图像可以在不触摸的情况下拖动。我确定漏洞问题来自anyObject,但我不知道如何替换它我尝试了self.view.image但它失败了。所以这是我的代码

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [[event allTouches] anyObject];
    CGPoint location = [touch locationInView:touch.view];
    lineView.center = location;
}

-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    [self touchesBegan:touches withEvent:event];
}

任何想法?

2 个答案:

答案 0 :(得分:1)

考虑使用平移手势识别器。仅将其添加到图像视图(并在视图上启用用户交互)。现在,您只能在实际触摸视图时从手势获取操作方法回调,您的代码变得更简单,并且您可以使用该位置移动视图。

此外,在您当前的代码中,从touchesBegan:拨打touchesMoved:是很奇怪的。如果您保留该代码(因为您不想使用手势),则应该重构将视图移出到其他方法的代码,并让touchesBegan:touchesMoved:调用该方法。

答案 1 :(得分:0)

尝试以下

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [[event allTouches] anyObject];
    CGPoint location = [touch locationInView:touch.view];
    if ([lineView pointInside:location withEvent:event])
        lineView.center = location;
}