【问题标题】:How to identify which view a UIImageView collides with如何识别 UIImageView 与哪个视图发生冲突
【发布时间】:2014-12-24 18:20:57
【问题描述】:

我有一个UIImageView 乘坐UIBezierPath(称之为enemy)。贝塞尔路径跨越多个不同的图像。我有什么方法可以让enemy 检测UIBezierPath 运行的视图与其自身之间的冲突?

但是,当它检测到自己和其他视图之间的冲突时,它必须识别它与哪个视图相交。

如果需要,请提供详细信息:

  • 所有图像或视图都不是IBOutlets。 (未在情节提要中创建)
  • UIBezierPath 没有曲线,它是一条直线
  • 贝塞尔路径经过的所有视图都彼此相邻

如果可能的话,我希望答案最多有一个CGRectIntersectRect if 语句。

【问题讨论】:

    标签: objective-c uiimageview collision-detection uibezierpath


    【解决方案1】:

    将子视图发送到图像(视图)的父视图,您将获得所有子视图的数组。将帧发送到每个子视图以获取帧矩形并将矩形与行或移动图像视图的帧进行比较或相交。

    【讨论】:

    • 首先,在这个答案中有数组是不必要的。这与将enemy 与所有图像/视图进行比较是一样的。
    • 如果你不使用提供这种命中检测的工具,你必须比较所有。为了加快速度,您可以冷实施一个四叉树来保存图像框架矩形。比请求四叉树的特定范围。
    猜你喜欢
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    相关资源
    最近更新 更多