【发布时间】:2011-03-01 15:48:33
【问题描述】:
有没有人设法让 UIGestureRecognizer 在作为 UIScrollView 子视图的 UIView 上工作?我的回调似乎永远不会被调用。
作为一个简单的例子,我想要一个分页滚动视图,并在第三页上用 UITapGestureRecognizer 监听点击。但是我无法让它工作。
我会这样做:
self.scrollView = [[[UIScrollView alloc] initWithFrame:self.view.frame] autorelease];
self.scrollView.pagingEnabled = YES;
self.scrollView.contentSize = CGSizeMake(self.section1ScrollView.frame.size.width * 3, self.scrollView.frame.size.height); //3 pages
UIImageView *p0 = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"page0.png"]] autorelease];
[self.scrollView insertSubview:p0 atIndex:self.scrollView.subviews.count];
UIImageView *p1 = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"page1.png"]] autorelease];
//code to move it to the next page
[self.scrollView insertSubview:p1 atIndex:self.scrollView.subviews.count];
UIImageView *p2 = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"page2.png"]] autorelease];
//code to move it to the next page
[self.scrollView insertSubview:p2 atIndex:self.scrollView.subviews.count];
UITapGestureRecognizer *p2TapRegocnizer = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(p2Tapped:)] autorelease];
//p2TapRegocnizer.delegate = self;
[p2 addGestureRecognizer:p2TapRegocnizer];
【问题讨论】:
-
我正在尝试相同的场景。但是,我的应用程序不仅没有被调用,还崩溃了。你设法让它工作了吗?
-
不,我相信我放弃了这些测试。如果我回复他们,我会告诉你的。
-
我有同样的事情,我的方法被调用了,但是我在我的所有图像视图中添加了相同的手势识别器实例,即在 p0、p1 和 p2 中。所以现在我不知道什么时候调用 p2Tapped 它是针对哪个索引
-
我遇到了类似的问题,我的 UIGestureRecognizers 仅针对偏移量为 0,0 的初始滚动视图 contentOffset 中的子视图触发,但是一旦我滚动到初始位之外,它们就不会触发(并且在进行 hitTest:withEvent 时触摸自己不会解析到最深的视图:)
标签: iphone cocoa-touch uiscrollview gesture-recognition uigesturerecognizer