如何一键同时控制两个 UIScrollView?

Posted

技术标签:

【中文标题】如何一键同时控制两个 UIScrollView?【英文标题】:How to control two UIScrollViews in the same time with one touch? 【发布时间】:2013-05-08 09:41:30 【问题描述】:

任何人都知道如何控制两个滚动视图,同时一个在另一个的顶部。一卷,另一卷也卷。与缩放、手势识别器等一样......有点像将第一个视图接收到的触摸复制品传递到下面的那个。顶部滚动视图的子类对下面的“依赖”滚动视图有一个弱引用。非常重要的是让委托方法适用于两个滚动视图,因为其中有很多逻辑......

【问题讨论】:

【参考方案1】:

使用 scrollView 委托方法

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
  if([scrollView isEqual:scrollViewA]) 
    CGPoint offset = scrollViewB.contentOffset;
    offset.y = scrollViewA.contentOffset.y;
    [scrollViewB setContentOffset:offset];
   else 
    CGPoint offset = scrollViewA.contentOffset;
    offset.y = scrollViewB.contentOffset.y;
    [scrollViewA setContentOffset:offset];
  

或者简单地在水平和垂直滚动中使用相同的方法

 if([scrollView isEqual:scrollViewA]) 
scrollViewB.contentOffset = scrollViewA.contentOffset;

反之亦然

【讨论】:

以上是关于如何一键同时控制两个 UIScrollView?的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView及其子类的嵌套联动

两个重叠的 UIScrollView 可以同时处理一个事件吗?

同时滚动两个 UITableView 时 UIScrollView 不流畅?

UISegmentedControl去掉背景色与UIScrollView联动

UIScrollView 的同时滚动

微信6.6.2版更新:支持两个账号一键切换