0

私は2つのUITableViewを持っていますが、1つのテーブルビューをスクロールすると、別のテーブルビューをスクロールする必要があります。

  1. contentOffsetOf 1つのtableViewを取得することでその機能を実現します

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

その値を別の tableView に渡し、この値を使用してその tableView contentOffset を変更します。私が期待したその作業。同じように、別の tableView をスクロールすると、新しい contentOffset がこのテーブルに渡され、値に応じて contentOffset が変更されます。

しかし、あるtableViewのcontentOffsetを別のtableView contentOffsetの値を使用して変更するたびに、その値を再度呼び出します

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

そのため、双方向通信のように機能します。しかし、別のtableView contentOffsetを使用してcontentOffset値を変更している間は望んでいません。同じ関数をコールバックしないでください。どうすれば達成できますか。

4

1 に答える 1

0

BOOL 値 shouldChangeContentOffsetOfTable1を設定し、shouldChangeContentOffsetOfTable2

メソッド内の各テーブルscrollViewWillBeginDragging:に対してNO

そしてメソッドで

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollViewYES

次に、メソッドで

-(void)scrollViewDidScroll:(UIScrollView *)scrollView

各テーブルのこの値を確認し、NO の場合はコンテンツ オフセットを設定しないでください。そのため、このテーブルが手動でスクロールされている場合、各テーブルの contentOffset は設定されません。

于 2013-10-25T05:28:17.497 に答える