未调用导航栏约 8 像素内的触摸事件

2024-01-24

我有一个带有三个按钮的应用程序(实际上UIView's) 水平放置导航栏。

这三个按钮的尺寸足够大(例如,比后退按钮大),但是当点击大致位于顶部三分之一部分时,它们不会响应触摸。

我知道导航栏正下方的这个区域是为后退按钮和其他 UINavigation 项目“保留”的,这些项目的触摸区域超出了导航栏(相当大的余量),但是在某些情况下,没有附近甚至没有导航项来窃取事件,而且我的视图仍然没有响应。

奇怪的是我am接到电话hitTest我的 UIView 中的方法,只是从来没有 TouchBegan/Ended/等等。

结果是按下按钮非常困难,并且如果一个人靠近UINavigationItem,该项目将窃取事件,即使在hitTest我正在返回正确的UIView到系统。

不幸的是,我是实施者而不是设计者,因此设计更改是最后的手段。

有任何想法吗?谢谢!


您必须对 UINavigationBar 进行子类化,并在 CustomNavigationBar 中执行以下操作:

-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {

    if ([self pointInside:point withEvent:event]) {
        self.userInteractionEnabled = YES;
    } else {
        self.userInteractionEnabled = NO;
    }

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

您可以找到有关如何子类化 UINavigationBar 的信息here https://stackoverflow.com/questions/6672229/how-to-subclass-uinavigationbar-for-a-uinavigationcontroller-programatically.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

未调用导航栏约 8 像素内的触摸事件 的相关文章

  • 为什么 UIWebView 吃这么多内存?

    我正在使用 UIWebView 为我的 iPad 应用程序加载纯文本 HTML 页面 HTTP页面的大小只有40KB 但是当我使用仪器监控加载 UIWebView 的内存使用情况时 我发现它消耗了大约 20MB 内存 如果我滚动 Web 视
  • 保存一页数据并将该数据添加到 tableView

    大家好 我有 2 个视图 第一个有 UITableView 第二个有一个文本字段 当用户按下第二页上的 保存 按钮时 我希望将文本字段文本添加到 tableView 中 这是我正在使用的代码 IBAction saveButton id s
  • 自定义过渡动画在animationControllerForPresentedController和animateTransition之间未知延迟

    我的目标是使动画在第一个视图控制器中开始并在第二个视图控制器中结束 我正在尝试使用符合以下条件的对象进行过渡动画UIViewControllerAnimatedTransitioning and UIViewControllerTransi
  • MPMediaItemPropertyPercientID 的 NSNumber 到 NSString 并再次返回

    我使用以下代码循环播放 iPhone 音乐库中的所有歌曲 NSArray songs NSArray alloc initWithArray MPMediaQuery songsQuery collections for MPMediaIt
  • iPhone UIWebview:如何强制使用数字键盘?是否可以?

    我正在尝试使用 PhoneGap 来开发一些 iPhone 应用程序 PhoneGap 基本上包装了一个 UIWebView 它运行良好 问题是我的应用程序有几个仅接受数字输入的输入字段 我确实需要强制使用数字键盘 而不是接受默认的标准键盘
  • 我可以/如何确定设备是否有振动?

    我有一些设置可以启用 禁用某些操作的振动 但我发现如果设备没有振动能力 则显示它们毫无意义 有没有办法检查用户是否正在使用 iPod touch 以及它是否有振动 我不确定除了进行模型检查之外还有其他方法可以做到这一点 这可能不是一个很好的
  • UITextView自定义自动完成

    有没有办法为 UITextView 实现自定义自动完成 例如给它一个NSDictionary or NSArray需要注意的字符串 你必须自己编程 如果您实现 UITextViewDelegate 协议 则该函数 BOOL textView
  • 如何禁用 NSDictionary 自动按键排序

    当我添加值时NSMutableDictionary它会自动设置密钥 我如何禁用它并按照第一组第一和第二组第二排列 NSMutableDictionary filteredDictionary NSMutableDictionary dict
  • 如何检查dispatch_async块是否已完成运行

    所以基本上我需要能够在块完成运行后运行 segue 我有一个块可以执行一些 JSON 操作 我需要知道它何时完成运行 我有一个队列 我称之为 json queue jsonQueue dispatch queue create com ja
  • iPhone 编程游戏

    使用 Objective C 还是 C 为 iPhone 编写游戏最好 像 Flight Control 这样的游戏会用什么语言编写 图形应采用什么格式才能在 iPhone 上正确显示并快速加载 像 Flight Control 这样的游戏
  • 如何在iPhone应用程序中创建折线图? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 我们可以在 Objective-C 中创建可空/非空属性吗?

    我们可以在 Objective C 中创建可空 非空属性吗 如果可以 那么如何创建 您可以使用 Nullable and Nonnull预选赛 property copy nullable NSString name property co
  • iPhone 上的摇动视觉效果(不是摇动设备)

    在登录失败时 我宁愿避免显示警报 它太短暂了 显示警报 然后在登录屏幕上的某处显示文本似乎是重复的 因此 当用户输入错误的用户 ID 和密码时 我希望它能像 Mac 登录屏幕那样以图形方式摇动我的登录视图 有人知道是否有办法实现这一点 或者
  • 如何在 iPhone 中以编程方式访问保存的图像中的图像而不使用 UIimagePickerController?

    我知道如何让用户从 UIImagePickerController 选择图像 但我不想要那样 我只想将 NSArray 图像存储在手机中 但我不想让用户参与 选择一个然后拥有该图像 相反 我创建了自己的自定义图像选择器控制器并希望有画廊作为
  • iPhone/iPad 应用程序介绍

    我的应用程序的 iPhone 版本支持UIDeviceOrientationPortraitUpsideDown and UIDeviceOrientationPortrait 但 iPad 版本支持所有方向 在我的视图控制器中我有这个 B
  • iPhone 上的加速器范围是多少?

    我似乎无法在网上找到任何关于此的文档 而且我正在谷歌搜索的内容给了我很多相互矛盾的信息 From iphonedevsdk com http www iphonedevsdk com forum iphone sdk development
  • 将 NSOperation 子类化为并发且可取消

    我无法找到有关如何子类化的良好文档NSOperation并发并支持取消 我阅读了苹果文档 但找不到 官方 示例 这是我的源代码 synthesize isExecuting isExecuting synthesize isFinished
  • 将 uiview 转换为 .png 图像

    我正在 iphone 上工作 我采用 UIView 的子类 并在绘制矩形方法中进行一些设计 我想将此视图转换为 png 格式 提前致谢 UIGraphicsBeginImageContext myView frame size myView
  • 如何消除圆形矩形按钮周围的间隙而不删除其周围的边框? [复制]

    这个问题在这里已经有答案了 顺便提一句 这可能看起来像是关于按钮阴影问题的问题的重复 但它们有单调的背景 在我的例子中 背景是一些图像 所以简单的边框不能解决问题 While making app for iPhone Pad I noti
  • AudioQueueNewInput 回调延迟

    无论我提供的缓冲区大小如何 提供给 AudioQueueNewInput 的回调都会以大致相同的时间间隔发生 例如 如果您有 0 05 秒的缓冲区并以 44k 录制 则回调将在大约 0 09 秒时首次调用 然后在 0 001 秒 之后立即发

随机推荐

  • 异步和等待 - 控制台、Windows 窗体和 ASP.NET 之间的区别

    我一直在学习异步 等待的使用 我想我理解了底层的概念 然而 大多数关于 async await 的 Channel 9 教程 MSDN 文章和 Stack Overflow 答案都使用基于 GUI 的应用程序 Windows 窗体应用程序
  • JDBC 和 MySql 安装和配置

    我必须使用 JDBC 和 MySql 做一个项目 有人可以指导我尝试安装和运行这些该死的东西吗 我不知道该怎么做以及做什么 我一生中从未使用过数据库 所以我不知道 我需要安装 配置什么等 有人可以提供一些有用的链接供我开始吗 Vogella
  • UIButton的addtarget:触摸后未调用!

    我有以下代码 当我按下 UIButton 时 不会调用任何内容 并且不会崩溃 calloutButton UIView alloc initWithFrame CGRectMake left width2 2 3 5 230 230 UIB
  • 使用 Hibernate 登录并存储记录的用户名

    我正在开发一个简单的项目云 其中注册用户登录后可以下载和上传文件 我正在使用 Eclipse Java EE JSF 和 Hibernate 进行开发 在我的项目中 我可以登录用户 如果数据正确 我会打开用户菜单 但无法弄清楚在哪里存储有关
  • 使用 UIAppearance 更改标签高度

    有没有办法使用 UIAppearance 更改 UINavigationBar 内标签的高度 这是代码和正在发生的情况的图像 以便您可以了解问题所在 UINavigationBar appearance setTitleVerticalPo
  • iPhone - UIView addSubview 顶部间隙

    我有一个加载到 MainWindow xib 中的视图 它只是一个带有 uiimageview 的视图 在整个屏幕 320 X 480 上显示图像 当应用程序加载时 我显示此视图 然后执行 self view addSubview tabb
  • WP7应用程序版本

    Windows Phone 7 应用程序似乎有两个带有版本号的位置 一个位于 AssemblyInfo cs 中 通过AssemblyVersion AssemblyFileVersion属性 另一个是 WMAppManifest xml
  • 如何自定义Boost.Log的“TimeStamp”格式

    我想得到年 月 日时 分 秒 分数 2位数字 如果我使用 Y m d H M S f 我几乎得到了什么我想要秒的小数部分 最后一部分 例外 它在我的 Windows XP 上显示 6 位数字 我不知道如何只获取 2 位数字 知道吗 我正在用
  • 创建 Log4j Logger 的开销是多少

    我的应用程序中有一些 Web 服务 我想根据 Web 服务名称将它们记录到不同的文件中 为此 我正在创建记录器 myLogger Logger getLogger logKey 我想知道是否应该缓存这些记录器以避免为每次调用创建它们 或者我
  • python 如何在“for”循环中处理对象实例化

    我有一个非常复杂的课程 class C pass 我有这个测试代码 for j in range 10 c C print c 这使 lt main C instance at 0x7f7336a6cb00 gt lt main C ins
  • Gradle Eclipse WTP:War 文件包含在另一个 war 文件中

    我有两个网络 战争 项目 A 和 B B 取决于 A 当我构建 B 时 A 按预期作为 A jar 包含在 B 的 WEB INF 中 我还使用 Gradle 的 eclipse 和 eclipseWtp 插件来生成 Eclipse 项目
  • 将分类器投入生产

    我已经使用 joblib 保存了分类器管道 vec TfidfVectorizer sublinear tf True max df 0 5 ngram range 1 3 pac clf PassiveAggressiveClassifi
  • 如何在 C++ 中使用 gnuplot?

    我想用 C 程序生成的 x y 点绘制一些图形 我可以从终端通过 gnuplot 命令成功绘制这些数据 但我想从 C 程序中绘制同样的东西 这在 ubuntu 16 04 lts 中可能吗 当然 只需使用标准包命令安装 gnuplot su
  • 这会导致C++内存泄漏吗?

    我对 C 内存管理有疑问 这 显然 与引用和指针有关 假设我有一堂课Class用一种方法my method OtherClass Class my method OtherClass other object new OtherClass
  • 按标签过滤和选择

    如何通过选择和忽略标签来获取最新的指标 例如 以下查询 last over time application version site NYC instance Test id 1h 返回以下项目 application version i
  • 使用 Jersey 客户端的连接池

    我对泽西岛很陌生 我进行了搜索 但无法弄清楚是否有办法进入泽西客户 to use 连接池而不是每次发送新请求时都创建连接 整个想法是重用池中的连接集 这将节省大量资源 仅供参考 我不是在寻找连接 保持活动状态 这就是我现在正在做的事情 pu
  • 使用约束 B 样条线近似形状轮廓

    我正在寻找一种生成约束样条线的可能性 以近似形状 在我的例子中 是足迹轮廓 作为原始数据 我有一个包含数百个 xy 坐标对的表 这些坐标是从足迹边界收集的 样条曲线应该只近似数据点 样条曲线不需要通过数据点 我希望能够在一定程度上平滑样条线
  • {m}{n}(“正好n次”两次)是如何工作的?

    所以 以某种方式 玩弄 我发现自己有一个正则表达式 比如 d 1 2 从逻辑上讲 对我来说 这应该意味着 一个数字恰好一次 恰好两次 即一个数字正好两次 但事实上 它似乎只意味着 一个数字恰好一次 因此忽略了 2 String regex
  • 如何在 PHP 中创建受密码保护的存档文件?

    我需要能够使用 PHP 创建带有密码保护的存档 zip 文件 我正在使用 Laravel 5 4 和 PHP 7 1 版本 我看了这个链接here http php net manual en class ziparchive phpPHP
  • 未调用导航栏约 8 像素内的触摸事件

    我有一个带有三个按钮的应用程序 实际上UIView s 水平放置下导航栏 这三个按钮的尺寸足够大 例如 比后退按钮大 但是当点击大致位于顶部三分之一部分时 它们不会响应触摸 我知道导航栏正下方的这个区域是为后退按钮和其他 UINavigat