如何知道颜色"触摸"另一种颜色

时间:2014-12-06 12:14:13

标签: ios objective-c uiview colors

我正在尝试创建一些东西,如果我有一个黄色背景的UIView,这个视图正在屏幕上移动,并在某处放置了另一个带有红色背景的UIView。我怎么知道黄色是否触摸红色? - 这意味着第一个视图触及另一个视图。

1 个答案:

答案 0 :(得分:0)

在动画期间,您必须定期检查交叉路口,如@ AMI289所说。 e.g。

- (void)animate {
    // Use an NSTimer to check for intersection 10 times per second
    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(checkForCollision) userInfo:nil repeats:YES];
    [UIView animateWithDuration:5 animations:^{
        // Do the animation
    } completion:^(BOOL complete) {
        // Tell timer to stop calling checkForCollision
        [timer invalidate];
    }];
}


- (void)checkForCollision {
    if (CGRectIntersectsRect([viewOne.layer.presentationLayer frame], [viewTwo.layer.presentationLayer frame])) {
        // Handle collision
    }
}

获取正在设置动画的视图的表示层非常重要,否则您将无法检测到屏幕上视图位置的增量更改。完成后,您还需要使计时器无效,否则您的checkForCollision方法将无限期地继续运行。