簡體   English   中英

在iOS中無法點擊導航欄外部的區域

[英]Area outside Navigation bar is not clickable in iOS

我創建了自定義導航欄,並在其上添加了一個UIButton。

請看所附圖片。

在此處輸入圖片說明

我將帶有背景圖像的UIButton作為子視圖添加到“定制導航欄”,因此可以單擊綠色線以上的部分,而不單擊綠色線以下的部分。

我試過使用UITapGestureRecognizer以及touches方法,即。 touches開始使用UIImageView來處理觸摸,但是沒有運氣。

我認為這僅僅是因為我的UIButton不可觸摸部分在NavigationBar Frame之外。

有什么方法可以單擊子視圖的一部分,而不是其父視圖。

父視圖的尺寸小於子視圖的尺寸。 這就是為什么它不可點擊。 據我所知,您唯一的選擇是嘗試增加父視圖(Custom Navigationbar)框架的大小。

您需要子類Navigation Bar並添加方法hitTest:withEvent: 例如:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {    
    CGRect extraTapRect = ...; // Put here needed rect
    if (CGRectContainsPoint(extraTapRect, point)) {
        for (UIView *subview in self.subviews.reverseObjectEnumerator) {
            CGPoint subviewPoint = [subview convertPoint:point fromView:self];
            UIView *result = [subview hitTest:subviewPoint withEvent:event];
            if (result != nil) {
                return result;
            }
        }
    }

    return [super hitTest:point withEvent:event];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM