我有一个视图控制器,我在同一个视图控制器中创建了另一个视图并将其添加为子视图。当单击按钮时,将出现子视图并占据屏幕的一半。当用户触摸时如何关闭子视图超级视图(背景中的主视图)?
问问题
1098 次
2 回答
1
您可以使用手势识别器并在子视图上调用 removeFromSuperview 的超级视图上的单击操作。
在您的 viewDidLoad 添加如下内容:
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
[singleTap setNumberOfTapsRequired:1];
[mainView addGestureRecognizer:singleTap];
然后添加函数:
- (void) handleSingleTap: (id) sender
{
[secondView removeFromSuperView];
}
于 2012-12-11T15:32:41.323 回答
0
为了更好地控制何时删除子视图,您可以像这样覆盖 mainViewController 的响应器方法:
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
[subview removeFromSuperView];
}
通过这种方式,您实际上可以看到用户在屏幕上点击的位置,并做出相应的响应。
于 2012-12-11T15:55:01.603 回答