【问题标题】:"do something" when an image is near another当图像靠近另一个图像时“做某事”
【发布时间】:2011-07-02 16:48:16
【问题描述】:

我有两个图像(image1 和 image2)。图 2 在屏幕上移动。当图像 2 接近图像 1(20 像素)时,我想“做点什么”。我该怎么做?

【问题讨论】:

标签: iphone cocoa-touch animation uiimageview pixel


【解决方案1】:

图像 2 不能移动,除非您的应用中的某些东西移动它。在代码中找到您移动图像 2 的位置,然后执行以下操作之一或类似操作:

  1. 计算到图像 1 的距离,如果小于 20 像素,则采取适当的措施。
  2. 向关心图像 1 和 2 之间距离的对象发送消息。
  3. 发布通知,通知任何关心图像 2 已移动的对象。
  4. 设置一个标志,表示图像 2 已移动,并确保您应用的其他部分定期检查该标志并执行正确的操作。

【讨论】:

    【解决方案2】:

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

    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的frame是否与collisionFrame碰撞:

    CGRectIntersectsRect(image2.frame, collisionFrame);
    

    【讨论】:

      【解决方案3】:

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

       CGRectIntersectsRect(CGRect1, CGRect2)
      

      【讨论】:

        猜你喜欢
        • 2014-01-03
        • 2012-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-15
        相关资源
        最近更新 更多