gpt4 book ai didi

ios - UINavigationBar 下方的 float 标题作为 subview - 接收触摸?

转载 作者:可可西里 更新时间:2023-11-01 05:44:10 24 4
gpt4 key购买 nike

我在 UINavigationBar 下方有一个 float 的 UIView header 。我已将它作为索引 0 处的 subview 插入,因此我可以根据 UITableView 的 contentOffset 对其进行动画处理。

但是,因为它超出了 UINavigationBar 的范围,所以在向其添加 UITapGestureRecognizer 后,我无法在此 View 中接收触摸事件。所有触摸事件都转到其下方的 UITableView

如果可以在导航栏边界之外创建一个 subview 并为其接收触摸事件,有什么想法吗?

我这样做是因为将它添加为 UITableView 的 subview ,我必须在滚动时根据 contentOffset 设置 Y 原点,这也使得动画非常困难,因为 Y 原点发生变化在滚动期间,所以我不知道将它设置为动画的位置。

它类似于 Facebook 应用程序中带有“状态”、“照片”和“签到”按钮的标题。

谢谢

最佳答案

您需要创建自定义 UINavigationBar 并重新实现 pointInside:withEvent: 以扩展导航栏的可触摸区域(添加您的 View 区域):

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
CGRect extendedRect = self.frame;
extendedRect.size.height += MENU_HEADER_HEIGHT - self.frame.origin.y;
BOOL pointInside = NO;
if (CGRectContainsPoint(extendedRect, point)) {
pointInside = YES;
}
return pointInside;
}

关于ios - UINavigationBar 下方的 float 标题作为 subview - 接收触摸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26064943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com