ios – 当用户点击视图外的任何位置时关闭视图

前端之家收集整理的这篇文章主要介绍了ios – 当用户点击视图外的任何位置时关闭视图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个非常复杂的应用程序,有很多堆叠视图,包含许多按钮,绘图区域和其他自定义触摸处理.我正在显示一个可拖动的帮助器视图,它可以位于所有其他视图之上.如果用户点击辅助视图之外的任何地方,我需要忽略此视图.我尝试过使用多个UI Windows并在UIWindow中添加Gesture识别器.

解决方法

一个简单的方法就是添加一个透明按钮,其边界等于superview的界限.并且superview在帮助器视图下方插入透明按钮.

透明按钮添加一个单击事件,可以解除帮助视图和它自己的透明按钮.

例如 :

UIButton *transparencyButton = [[UIButton alloc] initWithFrame:superview.bounds];
transparencyButton.backgroundColor = [UIColor clearColor];
[superview insertSubview:transparencyButton belowSubview:helperView];
[transparencyButton addTarget:self action:@selector(dismissHelper:) forControlEvents:UIControlEventTouchUpInside];@H_301_11@ 
 

和dismissHelper:方法可以做到这一点:

- (void)dismissHelper:(UIButton *)sender
{
    [helperView dismiss];
    sender.hidden = YES;
    // or [sender removeFromSuperview]
}@H_301_11@

猜你在找的iOS相关文章