在 CAKeyFrameAnimation 期间检测碰撞

2024-04-29

当一个 UIImageView 在 CAKeyFrameAnimation 期间沿一条路径行进时,是否可以检测到两个 UIImageView 的碰撞?

如果是这样,这是如何完成的,我尝试了多种方法,包括在动画期间检查 CGRect 是否发生碰撞 - 但找不到合适的方法来在 CAKeyFrameAnimation 期间执行方法并尝试检测路径和 UIImageView 的碰撞。


您需要从表示层获取属性。它将具有动画期间存在的信息的最佳近似值。通过以下方式访问它

view.layer.presentationLayer

有关更多详细信息,请参阅 CALayer/presentationLayer 的文档。

当您想要检查碰撞时,您可以获取每个对象的presentationLayer,然后访问您想要测试碰撞的任何属性。检查的确切方法取决于层的类型,以及您是否想要简单的命中测试或深度检查。只有您知道您想要寻找的碰撞时间和类型。

但是,要在对象动画时访问其属性,您需要presentationLayer。

EDIT

您可以随时进行这些检查。您可以在另一个操作的上下文中执行此操作,或者使用 NSTimer 在某个时间间隔执行此操作。您甚至可以使用 CADisplayLink,它同时将您连接到动画计时器本身。

如果您使用CADisplayLink,我建议将frameInterval设置为尽可能高的值,并仍然执行您想要的操作,以免影响性能。

    timer = [CADisplayLink displayLinkWithTarget:self selector:@selector(checkForCollisions)];
    // Callback is for every frame, which is 60 times per second.
    // Only callback every 6 frames (which is ten times per second)
    timer.frameInterval = 6;
    [timer addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];

完成后不要忘记使计时器无效。

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

在 CAKeyFrameAnimation 期间检测碰撞 的相关文章

  • Swift Firebase - 如何在使用 queryOrdered(byChild: ).queryEqual(toValue: ) 时获取所有 k/v

    root reviews postABC postId reviewXYZ I want everything under this reviewUID buyerUID 01010 text fast shipping responseT
  • 启动使用 Simperium 的应用程序时 objectFromJSONString 崩溃

    我得到了一个JSON当我尝试启动使用 Simperium 框架的应用程序时崩溃 NSCFString objectFromJSONString unrecognized selector sent to instance 0x6c561a0
  • 从基元创建自定义形状

    我正在尝试通过组合原始形状来创建自定义物理形状 目标是创建一个圆形立方体 合适的方法似乎是初始化 形状 变换 我在这里找到的https developer apple com library prerelease ios documenta
  • 从 AVAudioRecorder 获取分贝

    我正在尝试从 AVAudio 录音机获取分贝值 这是我目前的代码 我有一个启动录音机的方法 然后是一个读取分贝值的方法 var recorder AVAudioRecorder 全局定义的记录器 然后在此处使用 func init reco
  • Cordova iOS 启动画面

    我无法让闪屏停留在页面加载之前 我已经阅读了谷歌搜索第一页 第二页和第三页中的所有条目 我阅读了 stackoverflow 上发布的所有问题 包括一个很好的解释 https stackoverflow com questions 1800
  • 在 SwiftUI 中,如何执行手势但将手势转发到其后面的视图?

    我正在创建一个工具提示系统 如果用户触摸工具提示之外的任何地方 我想关闭工具提示 我希望这样在工具提示之外的触摸既可以消除工具提示 又可以激活用户点击的任何控件 因此 您可以打开一个工具提示 然后仍然单击工具提示外部的按钮 并在第一次点击时
  • Apple 针对 http 直播流媒体应用程序的政策

    这里有要求 http developer apple com library ios documentation NetworkingInternet Conceptual StreamingMediaGuide UsingHTTPLive
  • 通过应用程序组在应用程序之间通信和保存数据

    iOS 8 昨天发布了一个有关应用程序组的新 API 以前在应用程序之间共享数据和通信有点混乱 我相信这正是应用程序组旨在纠正的问题 在我的应用程序中 我启用了应用程序组并添加了一个新组 但我找不到任何有关如何使用它的文档 文档和 API
  • Cordova - 启动后出现白屏,控制台中没有例外

    我已经离开我的 Cordova 应用程序一段时间了 但昨天刚刚进行了一次新的克隆 发现它出现了 死机白屏 症状 启动画面显示 程序加载 然后我就得到一个空白屏幕 更多细节 CLI 科尔多瓦 6 1 1 安卓 5 1 1 ios 4 1 1
  • 返回一个dispatch_async获取的变量[重复]

    这个问题在这里已经有答案了 基本上 一个方法需要返回一个在dispatch async中获取的NSDictionary 这是我尝试过的 NSDictionary fetchNSDictionary dispatch queue t Queu
  • Cordova Phonegap“导出失败”错误代码 70 构建 ios 时

    我目前正在使用 Cordova Phonegap 构建 iOS 应用程序 本来工作正常 但现在运行时出现错误cordova build ios在终端中 我收到以下错误 导出失败 错误 命令的错误代码 70 带有参数的 xcodebuild
  • 将 UIRefreshControl 用于 UIWebView

    我在 iOS 6 中看到了 UIRefreshControl 我的问题是是否可以通过下拉来刷新 WebView 而不是像在邮件中那样让它弹出 我使用 rabih 的代码是 WebView UIRefreshControl refreshCo
  • 以编程方式检测应用程序是否正在设备或模拟器上运行

    我想知道我的应用程序在运行时是在设备还是模拟器上运行 有没有办法检测到这一点 原因是用模拟器测试蓝牙 api http volcore limbicsoft com 2009 09 iphone os 31 gamekit pt 1 woo
  • 如何将 CIFilter 输出到相机视图?

    我刚刚开始使用 Objective C 我正在尝试创建一个简单的应用程序 它显示带有模糊效果的相机视图 我得到了与 AVFoundation 框架一起使用的相机输出 现在 我正在尝试连接 Core 图像框架 但不知道如何连接 Apple 文
  • Swift - 将图像插入 PDF 不再适用于 iOS 13

    目前正在开发在我的贷款计算器应用程序上导出 PDF 的功能 我有一个预览屏幕 可以在您保存 PDF 之前显示它 预览屏幕由带有 html 的 webView 组成 其中包含占位符 我能够成功地将图像插入到正确的占位符上 并将其显示在 PDF
  • CIAdditionCompositing 给出不正确的效果

    我正在尝试通过平均其他几个图像来创建图像 为了实现这一点 我首先将每个图像变暗 其系数等于我平均的图像数量 func darkenImage by multiplier CGFloat gt CIImage let divImage CII
  • SwiftUI - 从 NSObject 继承的 ObservableObject 在 iOS 13 中不会更新

    我知道 这是 无法在 iOS XX 中工作 问题之一 但我完全陷入困境 所以我有一个ObservableObject继承自的类NSObject 因为我需要听委托方法UISearchResultsUpdating class SearchBa
  • 比较 Objective C 中的 NSNumber

    我是 Objective C 的初学者 对这种情况有点困惑 我有以下代码 if number1 lt number2 NSLog THE FOLLOWING NUMBER NSLog number1 NSLog IS LESS THAN N
  • 使用 NSFileHandle 覆盖数据

    使用 NSFileHandle 使用 truncateFileAtOffset 从文件末尾删除 n 个字符非常容易 void removeCharacters int numberOfCharacters fromEndOfFile NSF
  • 防止点击 MKAnnotation 时检测到 MKMapView 上的触摸事件

    我有一个 UITapGestureRecognizer 当用户点击地图时 它将在我的 MKMap 上隐藏和显示工具栏 简单 但是 当用户点击 MKMapAnnotation 时 我不希望地图以正常方式响应点击 如上所述 此外 当用户点击地图

随机推荐

  • Facebook 开发者帐户最佳实践

    在我的公司 我们需要创建一个 Facebook 开发者帐户 但如果不提供实际个人帐户 即我的个人帐户或其他员工的个人帐户 的详细信息 我们似乎无法做到这一点 使用个人帐户没有多大意义 如果该人离开公司怎么办 如果帐户持有人不希望其他开发人员
  • 不明确的元函数或未定义的类型

    我是元功能的新手 我想编写一个函数 将复合类型中某种类型的所有匹配项替换为其他类型 在示例中 replace
  • Mocking/Stubbing Mongoose 模型保存方法

    给定一个简单的 Mongoose 模型 import mongoose Schema from mongoose const PostSchema Schema title type String postDate type Date de
  • ARM 调用约定是否允许函数不将 LR 存储到堆栈中?

    正如标题所示 我在理解 ARM 架构的调用约定时遇到问题 特别是 我仍然很难知道当你调用子程序时 LR 寄存器会发生什么 我认为 当您进入子程序时 处理 LR 寄存器的最明显 最安全的方法是将其存储到堆栈中 但该行为没有出现在文档中 因此我
  • iOS safari 输入插入符号颜色

    我在 iPhone 设备上使用 Safari 时遇到了一个 CSS 小问题 我的搜索输入是蓝色的 当用户关注它时 插入符号几乎看不见 在所有桌面浏览器中 它都有正确的颜色 白色 即使在桌面 Safari 上也是如此 知道如何修复此问题并更改
  • 如果 Django 中的表单字段与 Python 关键字同名,如何声明该字段?

    我在 Django 中有一个简单的表单 看起来像这样 class SearchForm forms Form text forms CharField from forms DateField until forms DateField 失
  • 如何在fetch-mock中模拟多个获取?

    我正在测试我的反应组件 我想模拟几个get运营 我想做的是这样的 test Created correctly async gt fetchMock get JSON stringify FIRSTGETOBJ fetchMock get
  • 如何在 Robot Framework 中将变量定义为具有列表值的字典

    在我的一个测试用例中 我需要定义一个字典 其中键是字符串 值是字符串数组 我怎样才能在机器人框架中做到这一点 我第一次尝试使用如下所示的构造 但行不通 Variables Dictionary A StringA1 StringA2 B S
  • 显示 Presto 中所有模式的表

    急速 SHOW SCHEMAS 返回所有模式 SHOW TABLES FROM foo 返回 foo 模式的所有表 有没有一种简单的方法可以从 Presto 中的所有模式返回表 您可以使用select table schema table
  • Google Chrome 扩展:如何在以编程方式注入的内容脚本中包含 jQuery?

    我正在注射我的内容脚本来自背景页当用户点击浏览器动作按钮 就像这样 chrome browserAction onClicked addListener function tab chrome tabs executeScript null
  • 有没有 SwiftUI 方法来制作文本上标或下标?

    我知道可以像这样应用偏移量Text TM offset x 0 y 7 但是有没有不同或更好的方法来在 SwiftUI 中创建一些上标或下标文本 这是使用的通用方法 baselineOffset Text Company font call
  • 将 Boolean FlatZinc 转换为 CNF DIMACS

    为了解决一个布尔方程组 http arxiv org abs 1108 2830 我正在尝试Constraint Programming Solver MiniZinc http www minizinc org 使用以下输入 Solve
  • 以编程方式设置 Outlook 2013 签名默认值?

    是否可以通过编程方式设置 Outlook 2013 默认签名设置 我们可以生成用户的签名 但还想将签名设置为默认显示在用户的电子邮件中 该设置本身似乎隐藏在 Outlook 配置文件下的注册表中 HKEY CURRENT USER Soft
  • 如何在真实设备上模拟来电? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 出于测试目的 我想在真实的 Andr
  • 错误:找不到模块“@discordjs/opus”

    每次我运行不和谐的语音识别代码时 它都会上线 但一旦加入频道 我的代码就会显示错误 找不到模块 discordjs opus Require stack C Users SURYASH Desktop DiscordSpeechBot no
  • Google 地图 v3 - 我能否确保每次都能顺利平移?

    我的地图在一座城市内有数百个标记 通常不超过 20 英里半径 我已通读文档 但尚未找到一种方法来将 init 设置为在每个标记之间自动平移 无论距离如何 默认行为是如果靠近则平移 如果远则跳跃 我理解他们为什么要这样做 因为地图不会在选定的
  • 使用 ggplot2 表示散点图中每个点的小饼图

    我想创建一个散点图 其中每个点都是一个小饼图 例如考虑以下数据 foo lt data frame X runif 30 Y runif 30 A runif 30 B runif 30 C runif 30 下面的代码将绘制一个散点图 代
  • 尽管有 FOLLOWLOCATION,但仍使用 cURL 获取 301

    尽管使用了 FOLLOWLOCATION 和 MAXREDIRS 我还是收到了 301 错误 我不知道该怎么做 我尝试了一切我能做的 HEADER为0 FOLLOWLOCATION为1 MAXREDIRS为30 多次更改USERAGENT
  • 如何在MVVM架构中将animationview play与LottieForms绑定?

    所以我在列表视图中处理动画 并且我想随时播放一次 所以我想控制它 这是图书馆https github com martijn00 LottieXamarin https github com martijn00 LottieXamarin
  • 在 CAKeyFrameAnimation 期间检测碰撞

    当一个 UIImageView 在 CAKeyFrameAnimation 期间沿一条路径行进时 是否可以检测到两个 UIImageView 的碰撞 如果是这样 这是如何完成的 我尝试了多种方法 包括在动画期间检查 CGRect 是否发生碰