如何跟踪自定义视图外的点击次数

时间:2015-12-03 10:21:46

标签: ios xcode swift custom-view

我是一个自定义视图,它看起来如此

如何跟踪单击空白区域(视图外部)并隐藏它?

2 个答案:

答案 0 :(得分:4)

你可以使用touchesBegan跟踪它:

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    UITouch *touch= [touches anyObject];
    if ([touch view] == self.view)
    {
        // do stuff
    }
}

对于swift:

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        if let touch = touches.first {
            if touch.view == self.view {
                // do stuff
            }
        }
        super.touchesBegan(touches, withEvent:event)
    }

答案 1 :(得分:1)

您可以在自定义视图下添加UIView覆盖整个屏幕,给它一个0.1左右的alpha。然后,您可以向其添加tapGestureRecognizer以捕获自定义视图之外的所有触摸。

当您隐藏自定义视图时,请记住隐藏叠加层,以便之后不会阻止触摸。