iPhone - how to scroll two UITableViews symmetrically

前端 未结 5 1401
天命终不由人
天命终不由人 2021-01-01 05:27

In my app, I have two tableViews side by side. When the user scrolls on, I would like the second one to scroll at the same time, so it looks almost like one table with two d

5条回答
  •  一整个雨季
    2021-01-01 05:56

    Conveniently, UITableView is a subclass of UIScrollView. There exists a UIScrollViewDelegate, which has this method:

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView
    

    If you implement that method, you can get the contentOffset property of the scrollView argument. Then, you should use

    - (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
    

    and set the new content offset. So something like this:

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
        UIScrollView *otherScrollView = (scrollView == self.tableView1) ? self.tableView2 : self.tableView1;
        [otherScrollView setContentOffset:[scrollView contentOffset] animated:NO];
    }
    

    You can cast to a UITableView if you'd like, but there's no particular reason to do so.

提交回复
热议问题