Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何识别UIImageView与哪个视图冲突_Objective C_Uiimageview_Collision Detection_Uibezierpath - Fatal编程技术网

Objective c 如何识别UIImageView与哪个视图冲突

Objective c 如何识别UIImageView与哪个视图冲突,objective-c,uiimageview,collision-detection,uibezierpath,Objective C,Uiimageview,Collision Detection,Uibezierpath,我有一个UIImageView在UIBezierPath上运行(称之为敌军)。贝塞尔路径在多个不同的图像上运行。我有没有办法让敌人检测到UIBezierPath运行的视图与自身之间的冲突 但是,当它检测到自身与其他视图之间的冲突时,它必须确定与哪个视图相交 如有需要,详情如下: 所有图像或视图都不是IBOutlets。(未在情节提要中创建) UIBezierPath没有曲线,它是一条直线 贝塞尔路径穿过的所有视图都彼此相邻 如果可能的话,我更希望答案中有max oneCGRectInters

我有一个
UIImageView
UIBezierPath
上运行(称之为
敌军
)。贝塞尔路径在多个不同的图像上运行。我有没有办法让
敌人
检测到
UIBezierPath
运行的视图与自身之间的冲突

但是,当它检测到自身与其他视图之间的冲突时,它必须确定与哪个视图相交

如有需要,详情如下:

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

如果可能的话,我更希望答案中有max one
CGRectIntersectRect
if语句。

将子视图发送到图像(视图)的超级视图,然后获得所有子视图的数组。向每个子视图发送帧以获取帧矩形,并将矩形与travalling imageview的帧或线进行比较或相交。

首先,在这个回答中,不需要使用数组。这与将敌人与所有图像/视图进行比较是一样的。如果您不使用提供此类命中检测的工具,则必须比较所有图像/视图。为了加快速度,可以冷实现四叉树以保持图像帧矩形。然后向四叉树请求特定的范围。