0

我有一个带有 UIScrollView 的 UIView,我想捕捉事件的触摸,但我不能。不涉及以下任何方法。问题是什么?

- (void) touchesEnded: (NSSet *) toca withEvent: (UIEvent *) evento
{
     NSLog (@ "touchesEnded");

}
- (void) touchesBegan: (NSSet *) toca withEvent: (UIEvent *) evento
{

     NSLog (@ "touchesBegan");

}
- (Void) touchesMoved: (NSSet *) toca withEvent: (UIEvent *) evento
{
     NSLog (@ "touchesMoved");
}

标题##在此处输入图像描述

谢谢你

4

3 回答 3

1

你需要使用 UIGestureRecognizer。您可以直接在 viewController 中添加它:

UITapGestureRecognizer *tap =
              [[UITapGestureRecognizer alloc] initWithTarget:myView action:@selector(yourSelector:)];
          [myView addGestureRecognizer:tapp];

否则,您可以直接使用界面巨石添加它: 添加手势识别器

添加手势识别器后,您可以像普通插座一样使用它。

于 2013-10-15T08:04:05.197 回答
1

正如 Benny Dalby 所说,有一种方法可以制作 UIScrollView 的子类并且可以执行您的触摸事件

在您的滚动视图子类实现文件中,您可以执行这些功能

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


}

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


}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesEnded:touches withEvent:event];


}

- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesCancelled:touches withEvent:event];
}
于 2013-10-15T08:32:58.457 回答
0

UIScrollView 对 touchesEnded、touchesBegan、touchesMoved 等是免疫的。也就是说,它可以防止这些方法在 ViewControler 中被调用。

可能性 1:

ScrollView中使用UIGestureRecognizerDelegates实现触摸

可能性 2:

创建 UIScrollView 类的子类并覆盖 touchesBegan: 和其他触摸方法

希望能帮助到你!!!

于 2013-10-15T08:00:47.803 回答