我有一个坐在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];
}
}