如何同步UICollectionViewCell内部的UITableView(在UICollectionViewController内部)之间的滚动

问题描述 投票:0回答:1

当前,我正在尝试同步嵌套在UICollectionViewCell内的UITableView之间的滚动

我的视图层次结构类似于:

  • UICollectionViewController
    • UICollectionView
      • UICollectionReusableView(标题视图)
      • UICollectionViewCell
        • UITableView
          • UITableViewCell

我想要达到的效果是一种类似于视图传呼机的效果,您可以在页面之间滑动,而当垂直滚动时,其余的视图即导航栏会正常响应。

我现在正在做的是获取contentOffset.yUITableView并相应地更新UICollectionView内容的偏移量。

我正在使用NSNotificationCenter滚动表视图时通知父ViewController。

@objc private func didScroll(_ notification: NSNotification) {
   guard let userInfo = notification.userInfo as? [String: CGPoint] else { return }
   guard let offset = userInfo["offset"] else { return }

   let y = offset.y
   collectionView?.setContentOffset(CGPoint(x: 0, y: y), animated: false)
}

结果看起来像这样:

enter image description here

主要问题是:

  1. 您无法向左或向右滑动,因为内容偏移量x是静态的并且设置为0

  2. 视图会卷成一个样子,看起来很糟糕

  3. 非常小故障

在尝试之前,我的观点最终看起来像这样:

enter image description here

在这里您可以看到我所描述的问题,该视图未响应UITableView滚动。

因此,我需要:

了解如何使UICollectionView滚动到与UICollectionViewCell内部的UITableView同步(并允许更改 内容偏移量。x)

ios swift uitableview uicollectionview
1个回答
0
投票

我没有使用嵌套的UICollectionView / UITableView的方法,并且认为很难解决两个UIScrollView之间的滚动同步。这是另一种方法:保留一个ListView(UICollectionView或UITableView)并添加划动手势,以实现水平滚动以与另一个显示部分列表数据的ListView进行分页。分页后,刷新主ListView以显示新的类别数据。

您可以在这里找到代码:https://github.com/BlueMatthew/PagingSubList

© www.soinside.com 2019 - 2024. All rights reserved.