我正在尝试创建一个非常简单的游戏,您可以在其中拖动一个简单的 imageView。问题是框架中有一面墙(只是一个矩形),图像不应该放在上面。所以我做了这样的事情:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
if ([touch view] == myImage) {
if (CGRectContainsRect (CGRectMake(0, 0, 800, 768), [myImage frame]))
{
myImage.center = [touch locationInView:self.view];
}
}
}
但问题是图像确实超出了它的界限,然后卡在那里并且touchesmoved结束了。
所以我添加了这个:
else if (CGRectIntersectsRect (CGRectMake(801, 0, 223, 768), [myImage frame])) {
CGPoint touchedPoint = [touch locationInView:self.view];
myImage.center = CGPointMake(730, touchedPoint.y);
}
但这使得图像在与“墙”相交时开始闪烁并最终卡在那里。
我觉得必须有一个简单的方法来做到这一点。谁能启发我?