1

私のアプリには、右下隅にテザリングし、固定距離だけ垂直に移動できるようにしたい小さなサブビューがあります。

ドラッグできるようにするコードがいくつかありますが、それ以上の制約はありません。

- (void)viewDragged:(UIPanGestureRecognizer *)gesture
{
    CGPoint translation = [gesture translationInView:keyView];

    // move view
    keyView.center = CGPointMake(keyView.center.x + translation.x,
                           keyView.center.y + translation.y);
// reset translation
[gesture setTranslation:CGPointZero inView:keyView];
}

私は StackOverflow を調べていくつかの方法を試しましたが、機能した唯一の方法は斜めの動きを考慮しておらず、1 つの場所にテザリングすることに関しては何も見つかりませんでした。

では、これを行う方法を知っている人はいますか? どうもありがとう

編集:また、この性質のトピックに関する有益で有益な参照ドキュメント(Appleのもの以外)を知っている人はいますか?

4

1 に答える 1

1

keyview.centre.yがあるしきい値(停止したい場所)よりも小さいかどうかを示す行をビューのドラッグされたコードに追加するだけで、それより下に変更しないでください。例えば。

keyView.centre = CGPointMake(keyView.center.x,
                       keyView.center.y - translation.y < threshold ? threshold : keyView.center.y);

また、xパラメータへの変更を削除して、斜めに移動しないようにします。

于 2012-11-05T22:34:42.830 に答える