当图像靠近另一个图像时“做某事”

时间:2011-07-02 16:48:17

标签: iphone cocoa-touch animation uiimageview pixel

我有两张图片(image1和image2)。图像2在屏幕上移动。当图像2接近(20像素)image1时,我想“做某事”。我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

除非您的应用中的某些内容移动,否则图片2无法移动。在代码中找到移动图像2的位置,然后执行以下操作之一或类似的操作:

  1. 计算距图像1的距离,并在小于20像素时采取适当的措施。
  2. 向关注图像1和2之间距离的对象发送消息。
  3. 发布通知,通知任何关心图像2移动的对象。
  4. 设置一个标记,表示图片2已移动,并确保您的应用的其他部分定期检查标记并做正确的事。

答案 1 :(得分:1)

您可以尝试使用当前大小的Image + 21像素创建CGRect,创建另一个Image的CGRect然后使用:

 CGRectIntersectsRect(CGRect1, CGRect2)

答案 2 :(得分:1)

创建一个向image1框架的每一侧添加20像素的框架:

CGRect image1Frame = image1.frame;
CGRect collisionFrame = CGRectMake(image1Frame.origin.x-20.0, image1Frame.origin.y-20.0, image1Frame.size.width+20.0, image1Frame.size.height+20.0);

然后检查image2的帧是否与collisionFrame碰撞:

CGRectIntersectsRect(image2.frame, collisionFrame);