我创建了自定义导航栏并在其上添加了一个UIButton。
请查看附件中的图片。
我将UIButton与背景图像添加为Custom NavigationBar的子视图,因此绿线上方的部分可点击,而不是绿线下方的部分。
我尝试过使用 UITapGestureRecognizer 以及触及方法ie。 touchesBegan 到UIImageView处理触摸,但没有运气。
我认为这只是因为我的UIButton nontouchable药水在NavigationBar Frame之外。
有没有办法点击子视图的部分,这部分是其父视图。
答案 0 :(得分:1)
父视图大小小于子视图。这就是为什么它不可点击。我所知道的唯一选择是尝试增加父视图(自定义导航栏)的帧大小。
答案 1 :(得分:0)
哟需要子类导航栏并添加方法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];
}