UIButton
ビューの1つにあるいくつかのインスタンスをタッチして画面上でドラッグできるようにしようとしています(最終的には勢いがありますが、それは後で行います!)。以下に示すように、これは非常に単純な形式で機能していますが、問題は、ボタンに触れてドラッグを開始すると、ボタンが指に付着し、指を離すと、「TouchUpInside」イベントがトリガーされることです。これは、実際にボタンをタップしたときに実行したいコードです。
一言で言えば、タップとドラッグ/リリースをどのように区別しますか?タップをショートタップジェスチャレコグナイザーなどに変更する必要がありますか?コード:
viewDidLoadの場合:
[firstButton addTarget: self action: @selector(wasDragged: withEvent:) forControlEvents: UIControlEventTouchDragInside];
そして私のwasDraggedメソッド:
- (void)wasDragged:(UIButton *)button withEvent:(UIEvent *)event
{
if (button == letter1Button) {
UITouch *touch = [[event touchesForView:button] anyObject];
CGPoint previousLocation = [touch previousLocationInView:button];
CGPoint location = [touch locationInView:button];
CGFloat delta_x = location.x - previousLocation.x;
CGFloat delta_y = location.y - previousLocation.y;
button.center = CGPointMake(button.center.x + delta_x, button.center.y + delta_y);
}
}