我有一个主视图控制器,其中有两个子视图,一个是笔记视图,另一个是共享视图。当我单击主视图控制器中的表格视图的单元格时,它会弹出便笺视图,便笺视图中有一个按钮,如果用户点击该按钮,它将弹出另一个子视图即共享视图。但是当用户点击笔记视图时,我需要关闭共享视图。是否可以在子视图中实现触摸事件?
我已经完成了此编码,但结果是错误的
在viewdidload
NotesView *label =[[NotesView alloc]init];
UITapGestureRecognizer *tapGesture =
[[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(NoteTap)] autorelease];
[label addGestureRecognizer:tapGesture];
[tapGesture release];
然后
-(void)NoteTap
{
UIView *langview = (UIView *)[self.view viewWithTag:120];
//ViewWithTag Number should be same as used while allocating
[langview removeFromSuperview];
}
最佳答案
在视图控制器的touchesBegan:
内部,您可以像这样检查触摸事件是否在子视图的框架内发生。
CGPoint touchPoint = [touch locationInView:self];
if (CGRectContainsPoint(label.frame, touchPoint)) {
UIView *langview = (UIView *)[self.view viewWithTag:120];
[langview removeFromSuperview];
}
关于iphone - 如何在 subview 中设置触摸事件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8265489/