2

複数の scrollViews を含む画面があります。これを達成する方法: 1 つをタップしてスワイプすると、すべてがスクロールし始めます。私はもちろんUIScrollViewDelegateメソッドを知っており、これまでにやろうとしていることは組み合わせ-setContentOffset:animated:scrollViewDidScroll機能しますが、デリゲートスクロールビューでスクロールを開始する場合にのみ機能します。

デリゲートを動的に変更する方法は? どのスクロールビューのユーザーが選択したかによって異なりますか?

4

1 に答える 1

4

UIScrollViewすべてのオブジェクトの配列を保持します。すべてのデリゲートが同じオブジェクトを指していることを確認してください (または、それが不可能な場合は、 で呼び出されるある種のハンドラーがありますscrollViewDidScroll)。次に、 を使用setContentOffsetしてオフセットを調整します。あなたは正しい考えを持っていましたが、現在のビュー (デリゲート メソッドの引数によって決定される) を除くすべてのスクロール ビューがスクロールしていることを確認したいだけです。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
  for (UIScrollView *view in self.scrollViews) {
    if (scrollView != view) {
      [view setContentOffset:scrollView.contentOffset];
    }
  }
}
于 2012-10-31T06:49:51.717 に答える