【问题标题】:How to create a layout like Featured page in App Store?如何在 App Store 中创建类似特色页面的布局?
【发布时间】:2014-06-27 04:56:20
【问题描述】:

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

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

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

问题:

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

2. 在中间部分,有几个具有水平滚动方向的集合视图。像这样创建它的最好方法是使用 UITableView 和里面有 UICollectionView 的单元格吗?看起来它是这样创建的,但是:
a. 这是最有效的方法吗?
b. 因为在我的第一个问题是我的困惑。

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

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

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

【问题讨论】:

  • 我认为顶视图是 UITableView 的标题,其他部分是 UITableViewCells 水平滚动。
  • 我之前也在想同样的事情。但是如何从中间部分开始创建弹性呢?
  • 就像我说的top section是tableview的标题。
  • 我遇到了同样的问题,我找到了我的解决方案Here

标签: ios objective-c uitableview uiscrollview uicollectionview


【解决方案1】:

这可能有助于您在 UITableViewCell 中实现 UICollectionViews:http://ashfurrow.com/blog/putting-a-uicollectionview-in-a-uitableviewcell

要使 TableView 中的第一个单元格“浮动”,您可以确保 scrollViewDidScroll 中的单元格永远不会超出屏幕

【讨论】:

  • 谢谢。我之前已经看过这篇文章了。这就是为什么我要问这是使用该方法的最佳方法吗?但是中间部分的弹性怎么样?
  • 我不是 100% 确定您所说的“弹跳”是什么意思,但 UICollectionView 是否有分页?这意味着,如果您稍微滚动一下,它就会弹回或跳到下一页。
  • 您可以简单地使用 [self.collectionView setPagingEnabled:YES] 启用它;并测试不同的流程布局,以确定应用中的“页面”。
  • 我想你误解了我的问题。您应该查看 iOS 7 App Store 应用程序中的“精选”选项卡以获取实时示例。好的,想象一下这样的情况,我的视图中有 3 个部分,它们只有一个垂直滚动指示器。然后,当用户已经在屏幕顶部时,我想要我的一个部分,当他们尝试向上滚动时,它会反弹。有弹性的部分不一定是顶部,它可以是中间部分或底部。当用户向下滚动时,它将滚动整个屏幕,因为整个子视图是单个滚动视图的一部分。
  • 我想你可能只想要一个带有标题视图的 UITableView。
【解决方案2】:

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

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

谢谢。

【讨论】:

  • 你写完了代码吗?
猜你喜欢
  • 1970-01-01
  • 2018-01-29
  • 1970-01-01
  • 2017-01-22
  • 2012-05-16
  • 2017-12-20
  • 1970-01-01
  • 2011-12-22
  • 1970-01-01
相关资源
最近更新 更多