UIScrollView中的UITableViewController与Horizo​​ntal Paging

时间:2012-06-29 12:46:03

标签: ios uitableview scrollview uipagecontrol

情况就是这样:

我需要在每个页面内进行水平滚动和表格视图。这就像新闻应用程序,它应该显示来自不同类别的新闻,当在一个水平方向上滚动时,在一个类别内,它应该显示大约30个新闻,当然可以垂直滚动。

我已经成功完成了我需要的东西,但是......

我有以下情况:

UINavigationController
|__ UIViewController, which contains ScrollView and PageControl
    |__ UITableViewController, which holds data in rows, and is displayed inside parent, which is actually ScollView

我知道这不是一个理想的解决方案,但至少它可行。作为基础,我在这个link上使用了Apple的代码和教程。而不是简单的viewController添加到ScrollView,我使用TableViewController,所以基本上我将tableController.tableView添加到ScrollView。

我也知道,在scrollview中添加tableViews有点像在卡车里面添加汽车并驾驶那辆汽车,但我找不到更合理的方法来做同样的事情。

所以,我需要你对如何使用其他方法实现这一点的想法。我为此使用了故事板和iOS 5,现在一切看起来都很混乱。

非常感谢,很多。

2 个答案:

答案 0 :(得分:5)

几个月前我做了类似的事情,就像这样:

  • UINavigationController
    • UIViewController UIScrollView
        内置UIViewController
      • UITableView(我之所以这样,是因为我讨厌UITablewViewController

我跟着Apple's documentation about creating custom containers。如果我没有弄错的话,在WWDC 2011视频节中有一个很棒的视频。我可以自豪地说代码非常简洁易懂。


回答1.0

唯一的一点是,您是否设法对tableView进行了正确的方向处理,没有任何黑客攻击,或者您没有使用它?

不,在这种情况下我没有,但我相信我能够毫无问题地做到这一点。你看,大多数问题出现在[self.view addSubView:newViewController.view];。您只需添加UIView,旋转的所有逻辑都由newViewController处理,而不是在UIView所在的控制器中。

另一件事是,如果我要尝试实现GridView或类似的东西,对于iPad来说,方向处理和动画会变得非常难看。

我在另一个项目中实现了这一点,一旦你理解了正在发生的事情就很容易实现:

  1. 我使用了UIViewControllerUITableView所以我可以从dequeueReusableCellWithIdentifier:获得所有好吃的东西,创建部分标题,表格的页眉和页脚等等。我只是觉得没有无论我对UIScrollView UITableView做什么总是会更加优化。作为UITableViewCell's,我只使用了一个有3个方格的支架,每个方格都是一张图片。 (我的申请是图片展示)

答案 1 :(得分:0)