0

UIScrollView とそのデリゲートを UIViewController に実装しています。横方向にスクロールします。

私が望むのは、ビューがドラッグされて安定しているときに「磁気」を設定することです。

それを行うために、デリゲート、特にタイトルで言及されているメソッドに耳を傾けています。最終目的地のオフセットを返します。次に、scollview に、setContentOffset または setvisiblerect メソッドを使用して、この宛先に対応するビューを表示させます。

また、バグをキャッチするためにメソッド全体を NSlog します。特に、メソッドを呼び出した直後に、メソッドがトリガーされた場合に、私を確認したかどうかを確認する nslog があります。

問題 : ビルドして実行すると、ドラッグによって最初の nslog が平均 3 回トリガーされます。そのため、エフェクト全体が非常に奇妙に見え、それが機能するかどうかわかりません。

私はネット上でこれについてほとんど何も見つけませんでした。ですので、何かヒントがあれば大変助かります。乾杯

私はちょっと必死です:/

4

1 に答える 1

1

では、ユーザーがドラッグを完​​了したときに、スクロールビューを有効な選択にスナップさせたいですか?これを使用して実装できるはずです

- (void)scrollViewWillBeginDragging:(UIScrollView *)thisScrollView

- (void)scrollViewWillDidScroll:(UIScrollView *)thisScrollView

メソッド。あなたのコードを見ずにこれをどうやって行うかを正確に言うことはできませんがthisScrollView.contentOffset.x、変数内のを追跡し、いくつかの算術演算を行ってscrollViewを移動することをお勧めします

[UIView beginAnimations: @"anim" context: nil];
[UIView setAnimationBeginsFromCurrentState: YES];
[UIView setAnimationDuration: movementDuration];
self.view.frame = CGRectOffset(self.view.frame, 0, movement);
[UIView commitAnimations]; 

適切な場所に移動するために呼び出します。

于 2012-07-12T17:30:03.783 に答える