我的UIToolbar中有一个自定义的UINavigationController,带有自定义的背景图片。
图像在右侧是半透明的。我遇到的问题是,某些视图的右下角具有按钮,而这些按钮的底部不能被点击,因为工具栏将其阻止。

我无法在userInteractionEnabled = NO上设置UIToolBar,因为该栏包含需要保持交互性的UIBarButtonItem

有没有一种方法可以使指示条忽略抽头输入(而不是UIBarButtonItem)?

最佳答案

您可以在工具栏上设置userInteractionEnabled = YES,但按照How to get touches when parent view has userInteractionEnabled set to NO in iOS中的说明覆盖hitTest:point。这使其忽略自身的任何接触,但接受任何子视图(在您的情况下为UIBarButtonItem)的任何接触:

- (id)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    id hitView = [super hitTest:point withEvent:event];

    if (hitView == self) {
        return nil;

    } else {
        return hitView;
    }
}


请注意,这将要求您将UIToolbar子类化。

关于ios - UIToolbar-允许在工具栏下方进行交互,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16087346/

10-13 04:28