Ios 如何知道颜色是否“接触”另一种颜色

Ios 如何知道颜色是否“接触”另一种颜色,ios,objective-c,uiview,colors,Ios,Objective C,Uiview,Colors,我正在尝试创建一些东西,如果我有一个背景为黄色的UIView,这个视图在屏幕上移动,并且在某个地方放置了另一个背景为红色的UIView。我怎么知道黄色和红色是否有接触这意味着第一个视图与另一个视图接触。在动画期间,您必须定期检查交叉点,如@AMI289所述。e、 g - (void)animate { // Use an NSTimer to check for intersection 10 times per second NSTimer *timer = [NSTimer

我正在尝试创建一些东西,如果我有一个背景为黄色的UIView,这个视图在屏幕上移动,并且在某个地方放置了另一个背景为红色的UIView。我怎么知道黄色和红色是否有接触这意味着第一个视图与另一个视图接触。

在动画期间,您必须定期检查交叉点,如@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方法将继续无限期运行。

您可以使用CGRectIntersectsRect函数和视图的帧来检查相交。