接触有问题

时间:2013-10-15 07:44:56

标签: ios objective-c uiview uiviewcontroller uitouch

我有一个带有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");
}

标题## enter image description here

谢谢

3 个答案:

答案 0 :(得分:1)

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

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

否则你可以直接用界面boulder添加它: add gesture recognizer

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

答案 1 :(得分: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];
}

答案 2 :(得分:0)

UIScrollView不受touchesEnded,touchesBegan,touchesMoved等的影响。这样可以防止在ViewControler中调用这些方法。

可能性1:

使用UIGestureRecognizerDelegates在ScrollView中实现触摸

可能性2:

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

希望它能帮助!!!