ios - 如何在 App Store 中创建类似特色页面的布局?

标签 ios objective-c uitableview uiscrollview uicollectionview

我是 iOS 开发新手。根据我的假设,App Store 中的功能页面是使用 UITableView 和 UICollectionView 的组合创建的。但是如何在理论上和代码中做到这一点呢?我知道这有点含糊,因为很难描述,但我只需要一些人帮我解释一下。

对于这种情况,我将尝试使用这些命名:

1. 顶部,这是一个显示应用横幅的 View ,人们可以滑动它来查看另一个横幅。
2. 中间部分,可以水平滚动的 View 。 (最佳新应用、最佳新游戏等)。
3.底部部分,从快速链接开始到底部。

问题:

1. 滚动指示器是从 Root View 的顶部引导开始的,这是正常的,但是:
a. 当我们向上滚动时,弹跳是从中间部分开始的。怎么做?顶部和中间部分是分开的 View 吗?但是,如果顶部和中间部分是分开的 View ,滚动指示器如何从 Root View 的顶部指南开始? (分离 View 意味着 View 应该有不同的滚动指示器,除非它实际上是 UIScrollView 的 subview )。
b. 当我们向下滚动时,没有任何 float 的东西。所以看起来整个页面是单个 ScrollView 的 subview ,但弹性是从中间部分开始的。如何在整个页面只有一个滚动指示器的情况下创建那种弹跳效果?

2. 在中间部分,有几个水平滚动方向的 Collection View 。创建它的最佳方法是将 UITableView 与其中包含 UICollectionView 的单元格一起使用吗?看起来它是那样创建的,但是:
a.这是最有效的方法吗?
b. 因为第一个问题中的案例是我的困惑之源。

3. 底部的分隔符与中间部分不同。中间部分有缩进,而底部没有。如果是 UITableView,我该怎么做?

我的整个问题就是如何创建这样的布局。如果您不能通过提供一些很好的示例代码来帮助我,请向我解释一下如何做到这一点的概念或理论。

如果整个答案只是我必须从头开始使用垂直/水平 UIScrollView 创建它,那很好。我只是想确保这一点,因为我试图避免处理创建手动平铺。

最佳答案

好吧,我想我终于找到了自己的答案。

  1. 首先,我需要一个 UIScrollView 作为 View 的根。然后我将 contentSize 设置为特定值。
  2. 顶部部分可以是 UIPageController 或水平 UIScrollView。
  3. 中间部分是一个 UITableView,scrollEnabled 为 NO,单元格是静态的。静态单元格(也可以是动态单元格)将包含 UICollectionView。由于滚动被禁用,它将使用来自父 UIScrollView 的滚动。所以这就是为什么我可以在中间部分获得相同的弹性效果。
  4. 底部只是 UITableView 的另一个单元格。

谢谢。

关于ios - 如何在 App Store 中创建类似特色页面的布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23564818/

相关文章:

ios - 如何将目标操作添加到 UITableViewCell

ios - 从 UITableView 中的 Label 快速计数

ios - 单击按钮显示下一个/上一个日期

ios - CloudKit中如何按用户查询?

iOS 应用在扫描 Chromecast 设备时获得 "device authentication error"

ios - 使用 UISegmentedControl 进行多项选择 - Pages 使用的是什么?

ios - iOS:我应该使用Core Data还是NSUserDefaults?

ios - UIImageView 方面适合高度

ios - 如何从包中获取类

iphone - 文字转语音:阅读列表并在标题之间播放音频文件