我有一个带有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");
}
谢谢
答案 0 :(得分:1)
您需要使用UIGestureRecognizer。 您可以直接在viewController中添加它:
UITapGestureRecognizer *tap =
[[UITapGestureRecognizer alloc] initWithTarget:myView action:@selector(yourSelector:)];
[myView addGestureRecognizer:tapp];
否则你可以直接用界面boulder添加它:
添加手势识别器后,您可以像普通插座一样使用它。
答案 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:和其他触摸方法
希望它能帮助!!!