ios - 我应该如何构建这个 View ?

标签 ios uitableview uipageviewcontroller

我很难找到构建此设计的最佳方式。

顶 View 有一个最小高度,当它达到这个高度时就会变粘。底部 View 托管一个分页 Controller ,其中包含三个 View 。这些 View 中的每一个都承载一个 Collection View 或具有垂直滚动的 TableView 。

我真的不知道如何处理这个问题。整个 View 是否可滚动,我应该防止在第二个 View 上滚动,直到顶 View 达到它的粘性高度?或者这些 View 中的每一个都是单独的 uitableviews 而 pagingcontroller 只是一个单元格?我应该使用 pagingcontroller 还是应该使用启用分页的 ScrollView ? (后者在交互方面有点粗糙)

谢谢!

enter image description here

最佳答案

看看 Advanced User Interfaces using Collection View来自今年的 WWDC。此 View 与 iTunes Connect 应用程序界面非常非常相似。整个 session 视频解释了他们如何创建该界面。

我使用与此类似的方法在 Emojicate 应用程序中创建键盘。

enter image description here

我认为我要做的实际上是伪造粘性 header 。所以像这样...

  1. 只使用一个 Collection View 。
  2. 创建一个包含三个数据源的“分段数据源”。 (有关此内容,请参阅 WWDC 的视频)
  3. 当分段控件更改时,通过更改其布局和(如果需要)dataSource 来更新 Collection View 。
  4. 将整个顶部部分作为 Collection View 的标题。
  5. 当 Collection View 滚动到某个点时(当您想要粘贴标题时),然后有一个第二个 View ,即压缩标题并使其在屏幕顶部可见。这根本没有附加到 Collection View 。

当分段控件发生变化时,您可以通过更改“所选数据源”来更新 Collection View 。数据源还可以包含将更新它的 UICollectionViewLayout

本质上,您所说的表格 View 只是一个 Collection View ,其中单元格宽度等于屏幕宽度。即伪造一个表格 View 。

粘性标题根本不粘。就在它开始离开屏幕时,您可以在那里放置一个假标题。

这将需要一个重复的(ish) View 和一些关于如何构建数据的思考,但我认为这比拥有多个 Collection View 和页面 Controller 和其他东西更容易并且资源消耗更少。

如果您想让我更详细地了解它,请告诉我,但这是一个复杂的主题。先看视频。

关于ios - 我应该如何构建这个 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25703991/

相关文章:

iphone - 拖动完成后如何确定UIScrollView的目标内容偏移量?

ios - 如何修复 UIPageViewController 手动分页?

ios - 如何使用点击手势 (iOS8/Swift) 在 pageViewController 上显示/隐藏状态栏

android - tabBarIcon 未显示在 createBottomTabNavigator 上

ios - Swift 中的零宽度空间?

ios - UITableViewCell 中文本的自动滚动动画

ios - 网页 View 上的多个图像无法正确滑动

iOS - 钥匙串(keychain) - 可执行文件使用无效权利进行签名

iphone - UITableViewCell 分配问题 - 单元格不为零

ios - ui 测试 xcode,如何使用 cellquery 点击表格 View 单元格按钮