【问题标题】:Lock handling of scroll event in UIScrollView subview (inside a UIScrollView superview)UIScrollView 子视图中滚动事件的锁定处理(在 UIScrollView 超级视图内)
【发布时间】:2014-09-22 05:06:10
【问题描述】:

我有一个复杂的视图层次结构:

UIScrollView
    - UITableView
        - UICollectionView

UICollectionViewUIScrollView 都水平滚动。现在,我想专门在UICollectionView 上捕获滑动手势,以便超级视图 (UIScrollView) 忽略它。

用户可以向左滑动以到达UICollectionView 的末尾。最后,UICollectionView 上的滑动手势被忽略并被超级视图 (UIScrollView) 捕获,并且界面发生变化。我怎样才能防止这种情况发生?

注意:我使用的是 UIScrollView 和 UICollectionView 提供的默认滑动功能,即我没有添加任何自定义滑动手势处理。

【问题讨论】:

  • 您可以使用 UIScrollView 的委托方法,在其中您可以识别/决定哪个 scrollView 将能够滚动
  • 可以使用scrollEnable属性来决定

标签: ios uiscrollview scroll uicollectionview swipe


【解决方案1】:

在您的 ViewController.m 中

-(void)viewDidLoad
{
   scrollView.delegate = self;
   collectionView.delegate = self;
}

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
   if (the scrollView didn't reached the end){
      then collectionView can't scroll
   }else{
      collectionView can scroll
   }
}

您可以使用contentOffset 属性检查scrollView 是否到达末尾

别忘了声明你使用的是scrollView的委托

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 2014-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多