0

私は のUIScrollView中に を持っていUIViewます。カスタマイズされたページングの目的で、これのクリッピングUIScrollViewを [いいえ] に設定したので、 のUIScrollViewリージョン A とリージョン B に引き続き表示されますUIView

[ 領域 A [UIScrollView] 領域 B ]

今、リージョンABがUIScrollView'sタッチされたときにスクロールイベントをトリガーできるようにし[X addGestureRecognizer ...]たい.それが何であるか教えてください!

4

2 に答える 2

1

UIScrollViewのスクロール ジェスチャを別のビューにリダイレクトする場合は、次のようにします。

[paddingView addGestureRecognizer:scrollView.panGestureRecognizer];
于 2013-02-28T14:45:29.440 に答える
1

これにより、スクロールを滑らかに制御することはできませんUIScrollView

ただし、次のコードを使用できます。

UISwipeGestureRecognizer *leftSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(viewSwiped:)];
[leftSwipeGestureRecognizer setDirection:UISwipeGestureRecognizerDirectionLeft];
[self.view addGestureRecognizer:leftSwipeGestureRecognizer];
[leftSwipeGestureRecognizer release];

UISwipeGestureRecognizer *rightSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(viewSwiped:)];
[rightSwipeGestureRecognizer setDirection:UISwipeGestureRecognizerDirectionRight];
[self.view addGestureRecognizer:rightSwipeGestureRecognizer];
[rightSwipeGestureRecognizer release];

このメソッドを起動します:

- (void)viewSwiped:(UISwipeGestureRecognizer *)swipeGestureRecognizer {
    switch (swipeGestureRecognizer.direction) {
        case UISwipeGestureRecognizerDirectionLeft:
            // Make your scroll view scroll
            break;
        case UISwipeGestureRecognizerDirectionRight:
            // Make your scroll view scroll
            break;
        default:
            // Do Nothing
            break;
    }
}

これにより、スワイプ ジェスチャを取得し、それに応じてページを表示できますUIScrollView

他の 2 つのソリューションの方が優れている可能性があります。

  1. UIPanGestureRecognizer上記と同じ方法で使用できます。実際のパン ジェスチャを認識し、個別のスワイプだけでなく、指と の間の同期の実装はUIScrollView少し複雑になります。
  2. UIScrollViewの合計幅を取得してページングを自分で管理し、現在のビアUIViewの状態を追跡しながらステップを再計算できます。繰り返しますが、少し難しいです。UIScrollViewUIScrollViewDelegate

これが役立つことを願って、

于 2013-02-28T12:04:07.427 に答える