如何在App Store中创建像精选页面这样的布局?

时间:2014-05-09 12:34:58

标签: ios objective-c uitableview uiscrollview uicollectionview

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

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

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

问题:

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

2. 在中间部分,有一个具有水平滚动方向的多个集合视图。这是创建它的最好方法是将UITableView与其中包含UICollectionView的单元格一起使用吗?看起来它是这样创造的,但是:
   a。这是最有效的方法吗?    b。由于我的第一个问题中的案例是我的混淆来源。

3. 底部部分与中间部分有不同的分隔符。中间部分有压痕,而底部没有。如果案例是UITableView,我怎么能这样做?

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

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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

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

中的屏幕外