Swift:在另一个 UIView 下进行 UIView 的 hitTest

2023-12-03

我在RedOrGreenUIView 之上有TransparentUIView。 TransparentUIView 附加了一个 UILongPressGestureRecognizer。一旦用户开始长时间触摸它,我就会检查此 LongPressGesture 的 .Changed 状态,并执行下面的 hitTest:

var p:CGPoint = rec.locationInView(self.view)
var selectedView = view.hitTest(p, withEvent: nil)
if selectedView != nil {
   if selectedView == TransparentUIView {
       println("TransparentUIView is being touched")
   }
}

我将透明视图作为 selectedView 很好。然而,我需要能够同时在 RedOrGreenUIView 上进行 hitTest,它位于透明UIView 的下面。我无法集中注意力来完成这件事。请帮忙。


为容器创建自定义视图并覆盖 pointInside: 消息,当该点不在符合条件的子视图内时返回 NO,如下所示:

@interface PassthroughView : UIView
@end

@implementation PassthroughView
-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
    for (UIView *view in self.subviews) {
        if (!view.hidden && view.alpha > 0 && view.userInteractionEnabled && [view pointInside:[self convertPoint:point toView:view] withEvent:event])
            return YES;
    }
    return NO;
}
@end

快速版本

class PassThroughView: UIView {

     override func pointInside(point: CGPoint, withEvent event: UIEvent?) -> Bool {
            for subview in subviews as [UIView] {
                if !subview.hidden && subview.alpha > 0 && subview.userInteractionEnabled && subview.pointInside(convertPoint(point, toView: subview), withEvent: event) {
                    return true
                }
            }
            return false
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift:在另一个 UIView 下进行 UIView 的 hitTest 的相关文章

  • 为 iPhone 创建 .ipa

    我为 iPhone 开发了一款应用程序 构建后 我在构建文件夹中得到了 app 文件 我的应用程序名称是Myapp 然后我在build文件夹中得到了Myapp app文件 我的问题是我想创建 ipa 文件 这是怎么回事 它是为了安装 越狱的
  • 将用户重定向到 iTunes 应用商店或 Google Play 商店?

    我正在寻找一种简单的解决方案来发布我的应用程序的一个链接 例如在 Facebook 上 如果用户使用移动设备访问它 它应该自动重定向到正确的应用程序商店 否则 用户应该被重定向到我的网站 iOS应用程序 http itunes apple
  • 即席分发失败

    我在一家大公司工作 正在开发一个适用于 iOS 5 的 iOS 应用程序 分发应用程序的唯一方式是通过临时部署 我拥有自己的服务器已经有一段时间了 由 o2switch 法国托管商 托管 当我开始开发时 我们使用它来部署应用程序以进行 Be
  • 让约束在尺寸类别中发挥作用

    所以 我正在 Xcode 6 beta 中尝试尺寸类 我对图像设置了一些限制 使其根据 iPhone 纵向和横向对应的尺寸类别处于不同的位置 这些限制在下图中可见 正如您所看到的 当我处于紧凑 紧凑状态时 一些约束被 安装 而其他约束则没有
  • 在 swift 中获取用户可读的类名版本(在 objc NSStringFromClass 中就可以了)

    Swift 中是否有相当于 NSStringFromClass 的类名 可以提供用户可读的版本 我尝试将它与我创建的本机 Swift 类一起使用 但如您所见 结果似乎是编译器对类名的内部表示 println NSStringFromClas
  • XC测试元组

    我正在尝试构建一个单元测试 如下所示 region is a Double Double tuple XCTAssertEqual region 0 0 200 0 但 Xcode 给我一个错误 Cannot invoke XCTAsser
  • 取消交互式 UINavigationController 弹出手势不会调用 UINavigationControllerDelegate 方法

    如果拖动 a 的边缘UIViewController开始交互式流行过渡UINavigationController the UIViewController在电流下方有viewWillAppear 调用 然后是UINavigationCon
  • Apple 推送通知徽章编号

    我开发了服务器端应用程序 以在收到新通知后将徽章编号维护为递增或递减 并在看到通知后删除它工作正常 但是显示徽章时存在一些问题 实际情况是 在设备上收到新通知后 我单击取消按钮 然后徽章编号正确显示 但之后我将打开应用程序并关闭应用程序徽章
  • Xcode 6.3 Parse SDK 1.7.1 PFTableViewCell 错误“具有不兼容的类型”

    My code override func tableView tableView UITableView cellForRowAtIndexPath indexPath NSIndexPath object PFObject gt PFT
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 将多个数组合并为一个数组

    如何将多个数组合并为一个二维数组 鉴于我有以下输入 var arr1 1 2 3 var arr2 a b c var arr3 aa bb cc 我需要这样的输出 1 a aa 2 b bb 1 c cc 我认为你想要的是将三个数组组合成
  • 使用 iOS 设备作为 TCP 客户端 - 无 Bonjour

    我想使用 iOS 设备作为 TCP 客户端 但我找不到可理解的 API 指南 示例来说明如何做到这一点 我试过SimpleNetworkStreams and PictureSharing 但他们都使用 Bonjour 我可以轻松建立 UD
  • 包含字符串和数字的数组

    在 Objective C 中 很容易创建一个异构数组 如下所示 NSArray myArray String1 String2 123 456 有什么方法可以快速创建这样的数组吗 如果是的话怎么办 Note 我在 swift 中尝试了类似
  • iPhone / iPad IOS 应用程序仪器内存计数与 task_info 内存计数

    我一直在使用 Instruments Leak Tester 它给出了大约 1 3 meg 的应用程序总分配数字 但是 当使用 task info 时 它会报告更大的内存量 例如 10 20 meg 我想我只是想确认task info正在返
  • 获取 Swift 子目录中资源的所有 URL

    我正在尝试为 iOS 应用程序的子目录中的所有资源创建 URL 数组 我似乎无法到达正确的路径 即使我不知道名称 我也希望能够检索 URL 即我不想将文件名硬编码到代码中 Below is a screen shot of the hier
  • iOS:addConstraints:应用程序崩溃

    Problem 我似乎无法在现有项目中采用自动布局 Details 我之前也遇到过与此问题相同的问题presentViewController 在 iOS 但所提供的答案都不是我的解决方案 我正在使用所有没有 xib 的故事板视图 我的 使
  • iOS 11 getUserMedia 不起作用?

    苹果公司发表声明称getUserMedia将在 iOS 11 上完全正常运行 安装 iOS 11 Beta 版本 5 后 我确实收到一条消息 表明我的网站请求访问我的相机和麦克风 但似乎是这样的 video src window URL c
  • 如何正确使用 nsoperationqueue 的 autoreleasepool

    我有一个正在重构的应用程序 我刚刚实现了多线程 以便 UI 可以运行得更流畅 在 iPhone 模拟器中 我没有遇到任何泄漏 但在运行 iOS 4 2 的 iPhone 3G 上进行测试时 出现了内存泄漏 我已经做了很多搜索来使用操作队列实
  • Swift 3 和 Xcode8 - init 的使用不明确

    在我安装 Xcode 8 并将项目转换为 Swift 3 之前 以下行没问题 现在转换后看起来像这样 let valueData Data Data bytes UnsafePointer
  • 如何将 NSAppTransportSecurity 添加到 Cordova 项目

    我正在从事一个 ionic cordova 项目 该应用程序需要配置 iOS 9 版本的应用程序传输安全例外 有谁知道如何将以下配置添加到 cordova 项目配置文件中 配置 xml

随机推荐

  • C++ 失败时 istream 行为发生变化

    取自 参考参数 直到 C 11 如果提取失败 例如 如果在需要数字的地方输入了字母 则值保持不变并设置失败位 自 C 11 起 如果提取失败 则将零写入值并设置失败位 如果提取结果导致值太大或太小而无法适应值 std numeric lim
  • 使用产品风味时,每种风味中哪些文件是常见的,哪些文件是该风味特有的?

    productFlavors India USA 我们以两种产品口味为例 1 印度 2 美国 构建变体的总数将为 4 1 印度调试 2 印度发布 3 美国调试 4 美国发布 哪些文件对于所有风格都是通用的 哪些文件是特定于风格以及调试和发布
  • 如何在 Coq 中自动证明实数的简单相等?

    我正在寻找的是auto类似的策略可以证明简单的等式 例如 1 2 2 4 到目前为止 我手动尝试过的是使用ring simplify and field simplify来证明等式 即使这样效果也不好 Coq 8 5b3 下面的例子有效 R
  • 将数据从 .data 文件转换为 .csv 文件,并使用 pandas 将数据放入列中

    我想将 data 文件中的数据转换为 csv 文件 并将 data 文件中的数据放入其下带有值的列中 但是 data 文件具有特定的格式 我不知道如何将文本放入列中 data 文件如下所示 column1 column2 column3 c
  • 在提交 Ajax 时生成 CSRF 令牌 codeigniter

    您好 我正在寻找使用 ajax 提交表单时在 codeigniter 中重新生成 csrf 令牌的过程 我希望在不刷新页面的情况下重新生成令牌 有什么办法可以做到这一点吗 我根据情况在不同时间使用两种解决方案 1 方式有点乱 但推荐 获取控
  • 原始 CSS 文件中的条件 IE8 样式?

    我怎样才能只为 IE8 浏览器覆盖这个样式 我认为我不再关心 IE7 用户了 除非标记非常小 menu ul margin 0 padding 0 width 650px menu ul li display inline block wi
  • 找不到带有下划线的路由或者没有正确对待它

    我在路线中有这个 Rails application routes draw do namespace api do namespace v3 4 do 和控制器app controllers api v3 4 base controlle
  • LexResponse 输出无法理解 HTML 数据

    我在尝试让 AWS Lambda 函数在运行 SQL 查询时成功输出一系列 HTML 链接时遇到问题 private string GetEventSearchResults ILambdaContext context List
  • 如何使用 Gson 将 JSON 转换为 HashMap?

    我正在从服务器请求数据 该服务器返回 JSON 格式的数据 在发出请求时将 HashMap 转换为 JSON 一点也不难 但另一种方法似乎有点棘手 JSON 响应如下所示 header alerts AlertID 2 TSExpires
  • 如何使用 Storyboards/Cocoa 在 Swift 3.x 中引用视图的窗口

    随着 Xcode 和 Swift 中的所有更改 我无法弄清楚如何像在使用 XIB 的项目中那样处理 stotyboard 驱动的项目中的视图窗口 macOS 编程新手 如果这是基本内容 请提前道歉 使用故事板时 如何使用以下方法更改视图的窗
  • 具有 k 个部分的排序和非排序整数分区

    对于正整数n and k 让一个 k 分区n 是一个排序列表k不同的正整数加起来为n 并让给定的 等级 k 分区n是它在所有这些列表的排序列表中的位置 按字典顺序从 0 开始 例如 有两个 5 的 2 分区 n 5 k 2 1 4 和 2
  • 如何使 Eclipse Partstack 在最后一个部分关闭时不消失?

    我正在开发一个项目 该项目的主窗口由 mpartstack 组成 我在其中动态地从另一个部分添加部分 问题是 当最后一部分关闭时 mpartstack 消失 而另一部分占用所有空间 当我尝试添加新零件时 什么也没有发生 我尝试通过尝试添加新
  • 当 C 按值传递时,我的数组如何修改?

    我用 C 编写了一个简单的程序来检查两个单词是否是字谜 我的问题是 如果我传递 word one 和 word two 作为参数 这是否意味着我没有修改原始数组 我认为我正在有效地处理这些未归还的副本 这意味着我不应该能够将它们与我的 eq
  • 如何获取芒果的承运商详细信息?

    有没有API可以告诉我们手机是哪个运营商的 例如 沃达丰 祖国 当前国家 详细信息 我在 Microsoft Phone Net NetworkInformation 中找不到此类内容 我是否遗漏了某些内容 感谢帮助 您可以通过静态属性获取
  • 自定义类的比较重载方法

    我想重载个人类的比较方法 例如 如果我这样写 object1 function compare a b if a gt attribute b gt attribute return 0 else return a gt attribute
  • 用换行符绑定文本

    我绑定到带有换行符的字符串 例如 Hello nWorld 在我的模型中 现在我想使用显示模板中的值 x 但换行符未正确显示 聚合物是否为输出提供任何支持 br 用于换行 现在你最好的选择是创建一个Nl2br PolymerElement
  • Windows Phone 7 中的媒体播放器

    我正在使用 Windows Phone 7 中的媒体播放器来播放手机歌曲集中的音乐 但是当它播放音乐时 它们将是一个例外 并且错误指出 尚未调用 Framework Dispatcher Update 定期调用 Framework Disp
  • 代码不等待用户输入?

    我必须为我的计算机科学课做一个项目 问题是 图书馆的读者最多可以借三本书 因此 赞助人有一个名字和最多三本书 一本书有作者和标题 设计并实现两个类 Patron 和 Book 来表示这些对象和以下行为 客户端可以实例化一本书 并带有标题和作
  • 为什么在 Scala 中对 Option.getOrElse 的返回值使用隐式转换时类型推断失败?

    例如我有一堂课Value和一个隐式函数将字符串转换为值 case class Value v String implicit def strToValue s String Value Value s 这是一个有方法返回值的特征 trait
  • Swift:在另一个 UIView 下进行 UIView 的 hitTest

    我在RedOrGreenUIView 之上有TransparentUIView TransparentUIView 附加了一个 UILongPressGestureRecognizer 一旦用户开始长时间触摸它 我就会检查此 LongPre