以下に示すように、UIImageViewにUIPanGestureRecognizerを追加して、ドラッグを処理できます。
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(move:)];
[panRecognizer setMinimumNumberOfTouches:1];
[panRecognizer setMaximumNumberOfTouches:1];
[panRecognizer setDelegate:self];
[imageView addGestureRecognizer:panRecognizer];
次のメソッドを実装します。
-(void)move:(id)sender {
CGPoint translatedPoint = [(UIPanGestureRecognizer*)sender translationInView:self.view];
if([(UIPanGestureRecognizer*)sender state] == UIGestureRecognizerStateBegan) {
firstX = [[sender view] center].x;
firstY = [[sender view] center].y;
}
translatedPoint = CGPointMake(firstX+translatedPoint.x, firstY+translatedPoint.y);
[[sender view] setCenter:translatedPoint];
}
上記と組み合わせて、CGRectIntersectsRectを使用して、別のカップと交差しているかどうかを確認できます。
BOOL isIntersecting = CGRectIntersectsRect ([cup1 frame],[cup2 frame]);
すべてのカップを考慮に入れるために機能をラップする必要がありますが、これにより、実行しようとしていることをどのように達成するかについてのアイデアが得られます。