我创建了一个非常简单的应用程序,其中包含一个可拖动的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];
}
任何想法?
答案 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;
}