我有一个坐在UIScrollView上面的UIView。

我希望能够在捕获UIView的同时正常滚动ScrollView:

- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

唯一的问题是我似乎无法同时获得两个子视图来检测触摸。我可以将最上面的一个设置为userInteractionEnabled。但是,这并不能真正帮助我将两者兼得。

有什么想法吗??

谢谢!

最佳答案

在我的一个项目中,我在一个视图中进行了触摸,并以这种方式将方法传递给第二个方法:

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

    // Do something here

    [otherView touchesEnded:touches withEvent:event];
}


编辑:您还可以使用第三个UIView来管理触摸。

在视图上方放置第三个UIView(它应该与屏幕一样宽),并让它管理您的触摸

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

    // Get touch position
    UITouch *touch = [touches anyObject];
    CGPoint location = [touch locationInView:self.view];

    // Use location to pass touches to one view ot the other

    if (location == something) {
        [oneView touchesEnded:touches withEvent:event];
    } else {
        [otherView touchesEnded:touches withEvent:event];
    }
}

09-17 12:53