【问题标题】:How to layout UICollectionView with tabbar on SupplementaryView, and switching different content?如何在 SupplementaryView 上使用 tabbar 布局 UICollectionView,并切换不同的内容?
【发布时间】:2016-04-09 15:29:19
【问题描述】:

我想用标签栏实现 UICollectionView 效果,并且可以像很多社交应用一样切换不同的内容。

您可以点击Home显示时间线,点击Album在内容区域显示照片。头像、用户名等内容顶部不变,切换完成后内容偏移量保持不变。

我尝试使用包含 SupplementaryView 的 UICollectionView 来显示头像和处理标签栏点击事件。在切换不同内容时分配不同的委托、数据源和布局对象。但是我遇到了很多问题并崩溃了。

实现这种布局的正确方法是什么以及如何处理切换事件?

【问题讨论】:

标签: ios uitableview uiview autolayout uicollectionview


【解决方案1】:

如果我理解正确,您的视图顶部不会改变,并保持为带有头像的徽标。如果是这种情况,我不会担心补充意见。补充视图更多地用于部分标题/分隔符,其方式类似于 UITableViews 的部分标题的使用。相反,在底部有一个容器视图,它将保存带有 UISegmentedControl 的 collectionView,这将触发容器视图中的更改。如果容器要以不同的布局显示相同的数据(即照片垂直滚动到水平),那么分段控件可能会触发对 collectionViewFlowLayout 的更改,但如果数据发生更改(即时间轴到专辑),那么我建议切换到不同的容器视图中的子视图控制器由分段控制操作触发。您可能希望将当前滚动偏移量保存在容器视图控制器中,以便在切换回来时可以恢复它。还拥有单独的子视图控制器类将有助于防止容器视图控制器变得太大,并使每个子集合视图控制器保持简单和集中。

【讨论】:

  • 那么如何处理区域顶部的滚动触摸?当您触摸标题区域并向下滚动时,整个 collectionView 也应该一起向下滚动。也向上滚动。
【解决方案2】:

只要分解你的逻辑,没有必要把所有东西都放在一个UICollectionView和切换数据源和委托。

【讨论】:

    【解决方案3】:

    使用 CollectionView
    https://github.com/jamztang/CSStickyHeaderFlowLayout

    没有 CollectionView(为演示目的创建的测试项目)
    https://github.com/rishi420/issue-12-interactive-animations-uidynamics

    用于段控制
    https://github.com/dzenbot/DZNSegmentedControl

    使用 collectionView,cellForItemAtIndexPath 中的第一部分是个人资料图片区域。 cellForItemAtIndexPath 中的第二部分是另一个视图,其中包含一个包含所有 3 个(主页、相册、个人资料)可滚动视图的段控件。

    您还可以创建一个可拉动的视图,该视图固定在屏幕底部或在用户向上滚动时占用更多空间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-05
      • 2011-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-12
      • 1970-01-01
      相关资源
      最近更新 更多