0

我有两个 UITableView,而一个表视图滚动我必须滚动另一个表视图。

  1. 我通过获取一个 tableView 的 contentOffsetOf 来实现该功能

- (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 值 shouldChangeContentOffsetOfTable1shouldChangeContentOffsetOfTable2

对于方法中的每个scrollViewWillBeginDragging:NO

并且在方法中

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollViewYES.

然后在方法中

-(void)scrollViewDidScroll:(UIScrollView *)scrollView

检查每个表的这个值,如果它不是,不要设置它的内容偏移量。因此,如果手动滚动此表,则不会设置每个表的 contentOffset。

于 2013-10-25T05:28:17.497 回答