【问题标题】:Swift: Vertical scroll within horizontal scroll within vertical scrollSwift:垂直滚动中的水平滚动中的垂直滚动
【发布时间】:2020-01-09 02:36:20
【问题描述】:

我正在尝试创建类似于 Instagram 个人资料页面的滚动行为,即。顶部的垂直滚动视图(例如名称、头像等),下方是一个图像网格,可以左右平移以显示更多图像集,同时也能够垂直滚动。

为了记录,我已经阅读了大量与此非常相似的帖子,但我没有找到任何解决我在下面提出的滚动问题的帖子。

这是我目前的设置:

注意:绿色滚动视图的宽度和高度等于红色滚动视图的宽度和高度。

这个设置让我大部分时间都在那里,但如果你向上滑动并放开红色滚动视图,它不会触发绿色滚动视图滚动。相反,一旦绿色滚动视图占据了整个屏幕,就无法返回到红色滚动视图,因为它也没有被触发。

当红色滚动视图滚动超过标题的高度时,我通过启用/禁用绿色滚动视图取得了一些成功,但它非常笨拙。

  func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {

     let translation = scrollView.panGestureRecognizer.translation(in: scrollView.superview)
     var isScrollingDown = translation.y > 0
     let offset = scrollView.contentOffset.y

     if isScrollingDown, offset <= scrollHeight { //scrollHeight is equal to the height of the header cell
         greenScrollView.isScrollEnabled = false
     }
     else if !isScrollingDown, offset >= scrollHeight {
         greenScrollView.isScrollEnabled = true
     }
 }

这个解决方案是否朝着正确的方向发展,还是有更好的方法来完成我所缺少的?

【问题讨论】:

    标签: ios swift uitableview uicollectionview instagram


    【解决方案1】:

    我为此苦苦挣扎了一段时间。我遇到了这个并且效果很好。

    https://github.com/OfTheWolf/TwitterProfile

    【讨论】:

    • 太棒了!我一直在寻找这样的东西。非常感谢!
    【解决方案2】:

    我创建了一个我认为与 Harrison Senesac 给出的示例相同的存储库(也支持自动布局),除了我的存储库目前只有水平滚动部分。它旨在成为一个与 Harrison 给出的示例不同的库(它不适用于 NavigationController 或底部 TabBar,因为它的 UIScrollView 使用框架,而我的使用自动布局)。

    https://github.com/YoomamaFTW/infinite-view-controllers

    基本上,对于未来的用户来说,重点是使用看起来像 PageController 的 UIScrollBar。每个“页面”只是一个视图控制器,您可以将其添加到 UIScrollBar,同时增加内容大小的宽度。

    我已经实现了一些功能(例如显示两个图像的集合视图和您添加的 gif 中的一行),但这些功能将在星期六添加,因为我没有时间将它添加到两者我的应用和存储库。

    【讨论】:

      猜你喜欢
      • 2021-11-13
      • 2014-01-09
      • 1970-01-01
      • 1970-01-01
      • 2019-04-23
      • 2018-02-08
      • 1970-01-01
      • 1970-01-01
      • 2014-07-12
      相关资源
      最近更新 更多