如何将拖动事件添加到UIScrollView的子视图?结构如下:
-UIView
-UIScrollView
-UIView
-UIView
...
我尝试从以下开始:
-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *aTouch = [touches anyObject];
CGPoint location = [aTouch locationInView:self.superview.superview];
[UIView beginAnimations:@"Dragging A DraggableView" context:nil];
self.frame = CGRectMake(location.x, location.y,
self.frame.size.width, self.frame.size.height);
[UIView commitAnimations];
}
但没有任何反应!非常感谢帮助。 感谢
答案 0 :(得分:1)
只要有人像我一样找到这个问题,我通过在scrollview中的子视图中添加一个手势识别器来解决这个问题。手势识别器将自己处理触摸事件。
答案 1 :(得分:0)
另一种可能性是使用你提到的touchesMoved:方法。使用touchesMoved:方法需要你实现另外三个方法,touchesBegan:,touchesEnded:,touchesCancelled:。它们覆盖了手指触摸屏幕的阶段:
您需要在同一个类上使用所有四个方法,否则实现该方法的超类将获取触摸处理,并且您的代码将无法按预期运行。
问候,nobi