长话短说,如果我的UINavigationBar的alpha设置为0,我希望所有触摸都进入底层视图(从带有导航栏的视图控制器的角度来看,只是self.view)。如果是1.0,我希望它保留它们。

我将UINavigationBar子类化,并且试图覆盖hitTest:withEvent:,但是我真的很困惑自己在做什么,并且搜索几乎没有帮助。

我该如何说:“如果alpha为0,则将触摸发送到self.view,否则继续导航栏”?

最佳答案

您需要将视图的引用发送到导航栏中,并将其设置为名为behindView的属性。

if(self.alpha == 0.0f)
{
    return behindView;
}
return [super hitTest:point withEvent:event];

另一种方法是像这样重写pointInside:withEvent::
if(self.alpha == 0.0f)
{
    return NO;
}
return [super pointInside:point withEvent:event];

关于ios - 在某些情况下,如何使用hitTest:withEvent:从导航栏向基础 View 发送触摸?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18092528/

10-14 23:07