すでにジェスチャーで基本を実装できる場合は、ほとんどあります。私は自分のアプリケーションで正確にこれをやっている間
正直に言うと、私はジェスチャーの面ではなど
昔ながらのtouchesBegan、touchesMovedを使用し、あなたはUIPanGestureRecognizer
を使用する必要がありますので、あなたが持つことができますドラッグの完全なコントロール。 UISwipeGestureRecognizer
はスワイプだけを認識します。
とにかく、特定のポイントの後、単にドラッグした距離の一部だけパネルを翻訳します。
CGRect newPanelFrame = panel.frame;
if (newPanelFrame.origin.y + dragOffset > 275) {
newPanelFrame.origin.y += dragOffset/2.0;
}
panel.frame = newPanelFrame;
touchesEnded:withEvent:
で
またはif (gestureRecognizer.state == UIGestureRecognizerStateEnded)
CGRect newPanelFrame = panel.frame;
if (newPanelFrame.origin.y > 275) {
newPanelFrame.origin.y = 275;
}
panel.frame = newPanelFrame;
私は非累積翻訳を取得する方法を見つけ出すことができませんでしたので、私はUIPanGestureRecognizer
に煩わさたことがない理由は(translationForViewは:累積的です)これは基本的にしきい値の後にドラッグを遅くしたい場合に必要です。
わかりやすい答え –
IBActionメソッド内からタッチイベントの座標を取得するにはどうすればよいですか? – samsam
@サムサム:IBActionメソッドは、3つのシグネチャ、パラメータなし、1つのパラメータ(送信側)、2つのパラメータ(送信側とタッチイベント)のいずれかを持つことができます。タッチ位置データを含むタッチイベントのバージョンを使用するだけです。 –