2014-04-22 49 views
2

我想在我的UITableViewController中实现水平分页。随着每次刷新,UITableView中将显示一组新的项目。UITableViewController横向刷卡分页?

到目前为止,我已经尝试过使用一组UITableViewControllers,一个UIScrollView和一个UIPageControl。这有效,但它有两个问题。

  1. 在开始时将所有UITableViewControllers加载到内存中效率不高。
  2. 滑动时,UITableView仍然响应垂直滑动,因此会产生不愉快的效果。

一个应用程序,不正是我想要做的可以看到这里https://itunes.apple.com/nz/app/nrl-live-scores-league-now/id382164737?mt=8

我如何能实现水平分页的UITableView?

+0

为什么不使用水平分页的UICollectionView?让每个单元格的大小与完整的srceen相同? – YoCoh

+0

因为每个UITableView都有多个单元格...每个 – startupsmith

+0

可能有多达20个单元格,对于不明确 - 我的意思是在每个集合视图单元格的内容视图中添加UITableview作为子视图。然后你可以在tableview中向上/向下滚动,在tableviews之间左右滚动(在collection视图中)。每个tableview只有在调用cellForRowAtIndexPath时才会被实例化,所以需要引用它们。但是,您需要对每个uicollectionviewcell中的每个uitableview持有一个强有力的参考。 – YoCoh

回答

2

我最近做了一个非常类似的行为,使用UIPageViewControllerUITableViewController作为内容。这是非常简单直接的实施。

举个例子:

你需要一个UIPageViewController实现了UIPageViewControllerDataSource协议。数据源请求的方法:

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController 
    viewControllerBeforeViewController:(UIViewController *)viewController; 

- (UIViewController *)pageViewController: 
         (UIPageViewController *)pageViewController 
    viewControllerAfterViewController:(UIViewController *)viewController; 

,你只需要返回UITableViewController情况下,其中存在的内容。 划动等是默认行为UIPageViewController

有关更详细的示例看看这个tutorial,这帮了我很多。