iPhone-UIScroller内部的UIView。。。视图不向父级传递接触
我在UIScroller中有一个UIView(我们称之为myView) myView具有可以在其上拖动的元素 当触摸其中一个元素时,滚动条被锁定,以防止整个内容滚动。元素具有排他性touch=YES。我需要整个东西滚动时,只有我的看法是触摸 我用touchesbeated、touchesMoved等来学习,但我正在将这个课程转换为手势。新类附带了两个手势:UIPanGestureRecognizer和UIApgestureRecognizer。比如:iPhone-UIScroller内部的UIView。。。视图不向父级传递接触,iphone,Iphone,我在UIScroller中有一个UIView(我们称之为myView) myView具有可以在其上拖动的元素 当触摸其中一个元素时,滚动条被锁定,以防止整个内容滚动。元素具有排他性touch=YES。我需要整个东西滚动时,只有我的看法是触摸 我用touchesbeated、touchesMoved等来学习,但我正在将这个课程转换为手势。新类附带了两个手势:UIPanGestureRecognizer和UIApgestureRecognizer。比如: UIPanGestureRecognize
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc]
initWithTarget:self action:@selector(drag:)];
[panGesture setMaximumNumberOfTouches:1];
[panGesture setDelegate:self];
[myView addGestureRecognizer:panGesture];
[panGesture release];
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(tapAdd:)];
[singleTap setDelegate:self];
[singleTap setNumberOfTapsRequired:1];
[myView addGestureRecognizer:singleTap];
[singleTap release];
当这个类使用旧的方法(touchesbreated等)时,我只是简单地使用
[self.nextResponder touchesBegan: touches withEvent:event];
但我该如何使用手势呢?我的意思是,在我的例子中,UIPangestureRecognitor将运行一个名为drag的方法:这个方法接收一个手势。。。如何将触摸转发给滚动条父项,使整个内容滚动
谢谢您可以设置一个协议来代表您的视图 在标题中,设置
@protocol MyViewDelegate
- (void)drag;
@end
@interface ....... {
id <MyViewDelegate> delegate;
}
@property (nonatomic, assign) id delegate;
@end
在该实现文件中,确保将myView.delegate=self代码>初始化时,添加-(void)拖动{
并在其中执行您想要的操作。如果您需要更多信息,当然可以将协议中的方法指定为类似-(void)dragWithEvent:(UIEvent*)event
或类似的方法
然后,在myView中调用拖动:
时,可以通过调用[self.delegate dragWithEvent:event];
将其转发到协议方法
我意识到这是一个有点广泛,让您的滚动条滚动,但它会转发你想要的消息
您还可以将手势添加到滚动条而不是myView,然后在touchsbegind
方法中转发所有触摸,让滚动条直接处理
@interface Scroller ....... <MyViewDelegate> {