我很难找到构建此设计的最佳方式。
顶 View 有一个最小高度,当它达到这个高度时就会变粘。底部 View 托管一个分页 Controller ,其中包含三个 View 。这些 View 中的每一个都承载一个 Collection View 或具有垂直滚动的 TableView 。
我真的不知道如何处理这个问题。整个 View 是否可滚动,我应该防止在第二个 View 上滚动,直到顶 View 达到它的粘性高度?或者这些 View 中的每一个都是单独的 uitableviews 而 pagingcontroller 只是一个单元格?我应该使用 pagingcontroller 还是应该使用启用分页的 ScrollView ? (后者在交互方面有点粗糙)
谢谢!
最佳答案
看看 Advanced User Interfaces using Collection View来自今年的 WWDC。此 View 与 iTunes Connect 应用程序界面非常非常相似。整个 session 视频解释了他们如何创建该界面。
我使用与此类似的方法在 Emojicate 应用程序中创建键盘。
我认为我要做的实际上是伪造粘性 header 。所以像这样...
- 只使用一个 Collection View 。
- 创建一个包含三个数据源的“分段数据源”。 (有关此内容,请参阅 WWDC 的视频)
- 当分段控件更改时,通过更改其布局和(如果需要)
dataSource
来更新 Collection View 。 - 将整个顶部部分作为 Collection View 的标题。
- 当 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/