[英]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.