检测其他 UIView 中是否触摸了某个 UIView

2024-03-29

我有 3 个 UIView,分层在一个大 uiview 之上。我想知道用户是否触摸了最上面的一个而不关心其他的。我将在第二个 UIView 中有几个按钮,在第三个 UIView 中有一个 UITable。

问题是我在第一个视图上打开 userInteractionEngabled 并且有效,但即使我将其关闭,所有其他视图也会以相同的方式响应。如果我在 self.view 上禁用 userInteractionEnabled ,它们都不会响应。我也无法检测到 TouchBegan 委托方法中触摸了哪个视图。

My code:

UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 150)];
aView = userInteractionEnabled = YES;
[self.view addSubview:aView];

UIView *bView = [[UIView alloc] initWithFrame:CGRectMake(0, 150, 320, 50)];
bView.userInteractionEnabled = NO;
[self.view addSubview:bView];

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
//This gets called for a touch anywhere
}

为了检查另一个视图中的某个视图是否被触摸,您可以使用 hitTest。

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

在touchesBegan的自定义实现中,检查touches集中的每个触摸。 hitTest 方法的点可以使用以下方法获得

- (CGPoint)locationInView:(UIView *)view;

方法,其中视图是您的超级视图(包含其他视图的视图)。

编辑:这是一个快速的自定义实现:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    CGPoint locationPoint = [[touches anyObject] locationInView:self];
    UIView* viewYouWishToObtain = [self hitTest:locationPoint withEvent:event];
}

我希望这可以帮到你, 保罗

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

检测其他 UIView 中是否触摸了某个 UIView 的相关文章

  • Windows 下 iOS 开发的替代方案 [重复]

    这个问题在这里已经有答案了 可能的重复 如何使用 Windows 开发机为 iPhone 进行开发 https stackoverflow com questions 22358 how can i develop for iphone u
  • 我是否可以通过第三方支付网关为我的 iPhone 应用程序提供付款服务?

    所以我有一个 RESTful Api 服务 它有免费和付费的东西 任何人都可以利用我们的 API 创建 iPhone Andriod MSPhone 应用程序 不好的类比 假设我们正在为 Steam 创建一个聊天 api 服务 并且您可以为
  • 使用 Javascript 获取 Mobile Safari 中选定的文本

    因此 我正在开发一个小书签 对于我来说 使用 循环 获取用户选择的内容是理想的选择 window getSelection 和 document getSelection 都是我可以调用的函数 但是它们始终返回空字符串 我相信问题在于 当您
  • 一个 UITableView 中的两种不同的单元格类型

    大家好 我对如何在一个具有两个部分的 UITableView 中使用两种不同的单元格类型感到非常困惑 第一部分应返回一个大单元格 其中包含大量文本 另一部分应返回三个单元格 以导航到其他视图 我尝试过这样的 UITableViewCell
  • 加载 UIWebView 时如何使用 UIProgressView?

    我正在开发一个应用程序 我在 UIWebView 中加载 urlrequest 并且它成功发生 但现在我试图在加载过程中显示 UIProgressView 从 0 0 到 1 0 它随着加载进度动态变化 我怎样才能做到这一点 UIWebVi
  • ios7 绘图时出现延迟

    我有一个应用程序 在其中我正在视图上绘制一些草图 到目前为止 在我安装之前它运行良好ios7 我的应用程序使用触摸移动方法来识别运动的变化 但是当我画一条线时 触摸方法被调用 但线不会更新 直到我触摸结束ios7 所以画起来有一点点滞后 它
  • 如何在操作表中添加日期选择器?

    IBAction showCatPicker if self catList nil self catList nil catList release self catList NSMutableArray alloc init self
  • 将 UIImage 放入 UIButton 的简单方法

    我的 iPhone 应用程序中有一个 UIButton 我将其大小设置为 100x100 我有一个 400x200 的图像 我希望在按钮中显示它 按钮仍然需要保持在 100x100 并且我希望图像缩小以适应 但是 保持正确的纵横比 我想这就
  • 如何使 UITextView 像 Notes 应用程序一样使用文本展开

    如何使 UITextView 随其内部的文本展开 你可以试试这个 UITextView textView your UITextView NSString text the text that you want to place in th
  • 如何在 iOS 中通过 3G 连接创建无线热点

    如果我愿意 我将如何创建一个像这样的应用程序MyWi http intelliborn com mywi html 即 WiFi 网络共享应用程序 实现该功能需要哪些步骤 我需要使用哪些框架 库 我们的目标不是尝试将此应用程序放入应用程序商
  • 将 iPhone 应用程序降级到以前的 SDK 安全吗?

    我发布了一个带有 2 2 1 SDK 的应用程序 意识到我毫无意义地失去了仍在使用固件 2 2 的大部分客户 请参阅这篇文章 http arstechnica com apple news 2009 03 app store lessons
  • iOS 上读取证书问题

    我正在尝试从 iOS 中的各种 URL 读取证书 然而 我的代码运行不佳 应该返回我需要的信息的数组总是返回null 我缺少什么 void findCertificate NSString url NSInputStream input N
  • 如何在UITextField上自动打开键盘?

    我有一个非常简单的表格 当触摸单元格时 它会打开一个带有一个 UITextfield 的新视图 我想要的只是键盘会自动打开 而用户无需触摸 UITextfield 这一切都是在 Interface Builder 中完成的 所以我不确定如何
  • 当 UIView 通过自动布局调整大小时,会调用什么方法?

    我有一个图像视图 我通过在子类中覆盖以下内容来实现圆角 void setFrame CGRect frame super setFrame frame self layout setCornerRadius frame size width
  • 将数组从控制器传递到视图

    I have UIView UI视图控制器 在 UIViewController 中 我需要能够将项目插入到 6 个整数的固定数组中 然后 我需要将此数组传递给视图 以便它分析该数组并适当地更新屏幕 我该怎么做呢 我尝试过使用标准 C 数组
  • 文件中缺少所需的架构 i386

    添加 MapKit 和 CoreLocation 框架后 我在构建应用程序时遇到问题 它们都是 4 3 框架 并且该应用程序过去可以与 UIKit CoreGraphics 和 Foundation 一起正常工作 只是这两个框架给我带来了问
  • UIView transitionFromView:如何在转换过程中实现黑色背景?

    我使用下一个代码 UIView transitionFromView viewA toView viewB duration 1 0 options UIViewAnimationOptionTransitionFlipFromLeft c
  • 为 iPhone SDK 优化绘图(用手指触摸)应用程序

    我正在编写一个使用手指绘制简单图表的应用程序 我让它在大部分情况下都能工作 但现在我正在尝试优化它的性能 当用户快速滑动手指时 我无法捕获足够的触摸事件来绘制平滑的路径 这是我目前的方法 1 我对 UIView 进行了子类化 并向 CGLa
  • 如何在 iOS 中通过 wifi 传输大文件

    我下载了WiTap http developer apple com library ios samplecode WiTap Introduction Intro html代码来自苹果网站 它用于通过本地 WiFi 网络传输数据 我正在从
  • 可以使用两个独立的 SQLite 数据库吗?

    我有一个 sqlite 数据库 其中存储用户定义的信息和用户只读的信息 我觉得将来可能需要修改只读信息 并且我不想进行整个数据迁移 有没有一种方法可以使用单独的 sqlite 数据库来存储只读信息 该数据库可以轻松替换 如果是这样 您能否就

随机推荐

  • Facebook Connect 使用 ASP.NET 会员提供程序与网站集成

    是否有任何最佳实践或示例来说明如何使用会员提供程序 或类似的东西 将 Facebook connect 与现有 ASP NET 应用程序最好地集成 我确信我可以做一些事情 但是 如果有一些关于这方面的信息和最佳实践来减轻任何安全问题 那就太
  • SourceTree 将拉取的文件视为未提交的更改

    在某些未知的情况下 当我使用 SourceTree 拉取时 它会将所有拉取的文件视为未提交的更改 并且不允许再拉 推 除非重新提交或放弃这些更改 如果我丢弃未提交的文件 它将丢弃我的队友应用的所有更改 这有什么问题吗 是否存在已知的错误或其
  • graph6 格式如何工作?

    我一直在到处寻找 g6 或 graph6 格式的工作原理 但我不知道它是如何工作的 我发誓它就像魔法一样 F B w 这是一个以 ASCII 形式表示的图表 它可以由 Wolfram Mathematica Sage 和 Maple 等进行
  • Angular 错误:PostCSS 收到未定义而不是 CSS 字符串

    尝试构建 Angular 项目 但出现以下错误 这个项目上周建得很好 我对使用此项目中的 Dll 的其他项目进行了一些更改 但没有对此项目进行任何更改 我已经花了很多时间来排除故障 但没有运气 感谢任何帮助 错误 PostCSS 收到未定义
  • Facebook SDK 和通过 ShareDialog 问题共享 Play 商店应用程序链接

    我正在尝试使用 Facebook SDK 中的 ShareDialog 共享链接 我的 Google Play 应用程序链接 但问题是 当 URL 是我的应用程序的 Google Play 链接时 其他信息无法正确显示 实际上它只显示链接来
  • 如何让shell脚本在Mac中双击运行?

    我创建了一个 shell 脚本来在 Mac 中运行 jar 文件 bin sh java Xmx512m jar test jar 我已将此脚本重命名为 应用程序命令 双击就可以直接运行 我已经应用了 chmod x 命令使其具有可执行权限
  • PHP header() 不会重定向问题

    我的 header Location index php action messagesent 有问题 在用户按下提交并且 php 运行后 它不会重定向 通常它会重定向 但由于某种原因它不起作用 它只是在点击提交后重新加载页面 但它确实在标
  • 如何删除联系人?

    我正在使用 android 2 1 ContactContract 当我没有将帐户 例如 gmail 帐户 设置为 android 模拟器时 新建一个联系人 但无法在数据库中删除该联系人 ArrayList
  • 添加包含订单计数的列

    如何向数据框中添加一列来说明另一列中某个值出现的顺序计数 这就是我想要的结果 Fruit orderCount 1 Orange 1 2 Banana 1 3 Orange 2 4 Apple 1 5 Orange 3 6 Banana 2
  • 将文本渲染到 kivy 画布

    我正在尝试在奇异的 画布 中绘制自己的图形 现在我有一个红色或绿色的矩形 每秒改变一次颜色 但我想添加一个变化的文本标签 经过一番搜索后 似乎没有可以添加到画布的 文本 指令 我发现了一些关于使用 Label 小部件以及画布说明的参考 但这
  • 有没有替代 imread 命令来减少 matlab 程序中的延迟?

    我在此路径 G newdatabase 中有 2900 个图像 读取图像花费了太多时间 对于点积 它也花费了太多时间 问题 1 是否有任何替代 imread 命令来提高性能 2 是否有任何替代点命令可以提高性能 我尝试过的源代码 srcFi
  • 为什么windows第一次打开文件那么慢,有没有更快的方法

    这是 Windows 7 64 位 专业版使用 考虑一个非常简单的循环 for i 0 i lt names gt size i std string Name names gt at i HANDLE fileHandle CreateF
  • 使用 MAMP 在 Mac 上出现“db: SQLSTATE[HY000] [2002] 连接被拒绝”错误

    我正在尝试运行此 PHP 数据库的 CLI 版本搜索和替换脚本 https github com interconnectit Search Replace DB 但我认为这是一个与 Mac OS X 和 MAMP 相关的更常见的 MySQ
  • 如何使用 Errai 将 GWT 与 JAX-RS/RESTEasy 服务器集成?

    我想从 GWT 客户端应用程序调用使用 RESTEasy 和 JAX RS 创建的 REST 服务 使用 Errai 为服务器和客户端使用单一代码库的最佳流程是什么 我们都喜欢休息 它与供应商 平台和语言无关 调试 实施和访问都很简单 它为
  • Spring和hibernate:没有找到当前线程的会话

    我收到以下错误 org hibernate HibernateException No Session found for current thread at org springframework orm hibernate4 Sprin
  • 连接两个表后的 SQL 更新

    我是 SQL 新手 正在使用 Microsoft SQL Server Management Studio 我正在尝试编写一个 SQL 语句 在连接两个表后执行更新 我有两张桌子 myTable1 and myTable2 两者共享一个领域
  • CSS 不透明度如何影响可访问性?

    在浏览了一些谷歌和其他 SO 文章后 我决定简单地提出我的问题 希望得到一个简单 直接的答案 为讨论添加进一步的步骤opacity 0 与visibility hidden 的效果完全相同吗 https stackoverflow com
  • Flex ModuleLoader 组件导致内存泄漏。如何正确卸载模块?

    该应用程序太大 无法在此描述 但我可以告诉您 我有多达 20 个或更多模块可供客户端随时使用 如果我继续加载一个又一个屏幕 我的应用程序可能会占用 500MB 甚至更多 我用来加载和卸载模块的脚本是 public function crea
  • 静态函数中不可访问非静态成员

    我定义了一个函数 HRESULT AMEPreviewHandler CreateHtmlPreview ULONG CbRead const int Size 115000 char Buffer Size 1 HRESULT hr m
  • 检测其他 UIView 中是否触摸了某个 UIView

    我有 3 个 UIView 分层在一个大 uiview 之上 我想知道用户是否触摸了最上面的一个而不关心其他的 我将在第二个 UIView 中有几个按钮 在第三个 UIView 中有一个 UITable 问题是我在第一个视图上打开 user