【发布时间】:2016-02-01 11:06:30
【问题描述】:
我有一个视图作为 3 个子视图的父视图。三个子视图都填满了父视图。我在父视图中添加了触摸手势。我的目标是在用户选择父视图的任何子视图时实现一些功能。如何将触摸事件从孩子传递给父母。
我尝试为每个子视图添加触摸手势并将触摸委托给父视图,但没有成功。我有什么选择谢谢。
【问题讨论】:
-
请提供一些代码,这在不看实现的情况下很难调试,理论上听起来不错
我有一个视图作为 3 个子视图的父视图。三个子视图都填满了父视图。我在父视图中添加了触摸手势。我的目标是在用户选择父视图的任何子视图时实现一些功能。如何将触摸事件从孩子传递给父母。
我尝试为每个子视图添加触摸手势并将触摸委托给父视图,但没有成功。我有什么选择谢谢。
【问题讨论】:
首先为父视图下的所有 3 个子视图指定唯一标签。
其次在父VC的viewDidLoad()方法中添加这样的点击手势。
UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapEvent:)];
tap.numberOfTapsRequired = 1;
[self addGestureRecognizer:tap];
现在,识别发生或完成了哪个视图触摸:-
- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
UITouch *touch = [touches anyObject];
// here you can get your touch
NSLog(@"Touched view tag %d",touch.view.tag );
//by this you can differentiate on which view touch has been done.
}
【讨论】: