2013-10-25 63 views
0

我有两个UITableView,而一个表视图滚动我不得不滚动另一个tableview。多个UITableView滚动同步

  1. 我做到这一点通过

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

,并获得contentOffsetOf一个的tableView功能是值传递到另一个的tableView和更改的tableView contentOffset使用此值。我期望的工作。同样的方式,如果我滚动另一个tableView它会通过新的contentOffset到这个表,它会根据值更改它的contentOffset。

但是,当过我再次使用其他的tableView contentOffset的值更改一个的tableView的contentOffset其调用其

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

所以它的工作就像双向通信。但我不想在使用另一个tableView contentOffset更改contentOffset值时,不应再次调用不应该回调相同的函数。我怎么能实现。

+0

给出tableview标签和if条件处理。像If(tableview.tag == 1) –

回答

0

设置一个BOOL在该方法scrollViewWillBeginDragging:shouldChangeContentOffsetOfTable1shouldChangeContentOffsetOfTable2

对于每个表NO

和在该方法中

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollViewYES

在方法

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 

检查为每个表这个值

然后,如果它NO,dont't设置它的内容偏移。因此,如果此表正在手动滚动,则不会设置每个表的contentOffset。