带有 UITableView 的页面

Posted

技术标签:

【中文标题】带有 UITableView 的页面【英文标题】:Pages with UITableView 【发布时间】:2012-04-14 10:21:15 【问题描述】:

我想显示 UITableView,但我想将它与 Page Control 一起使用。例如,如果用户更改页面,我会显示其他数据(在同一张桌子上)。

我知道点击页面控制后我可以更改数据并重新加载表格。但是我想在水平滚动时更改数据,我希望它看起来像我滑到其他表。我不知道如何开始?

我想要那样的东西(而不是普通的桌子):

如何启动它?也许有任何开源示例?

【问题讨论】:

【参考方案1】:

我同意Oscar,使用UIScrollView 的优点是以后可以使用漂亮的幻灯片动画。看看PanelTableView 控件。

【讨论】:

【参考方案2】:

创建一个带有分页的 UIScrollView,看这里: http://www.iosdevnotes.com/2011/03/uiscrollview-paging/

然后只需在每个子视图(页面)中创建一个 UITableView

【讨论】:

我做到了。但是当我在 UIScrollView 上添加我的表格视图时,应用程序崩溃了,我得到的信息是我没有方法 NumbersOfSections,但我的表格控制器中有它。 当我在拥有 UIpageControl 的同一控制器中拥有 UITableView 委托方法时,它可以工作。如果我将它放在带有表的外部 UIViewController 中,则它不起作用。【参考方案3】:

不完全确定这是否能解决您的问题,但每当我希望 UITableView 水平滚动而不是垂直滚动时,我都会将其翻转过来。

//Rotate the table 90 degrees counterclockwise
CGAffineTransform rotateTable = CGAffineTransformMakeRotation(-M_PI_2);
self.myTableView.transform = rotateTable;
//Code to reset the position of your table as the rotation throws it off

然后在tableView:cellForRowAtIndexPath: 旋转单元格

//Rotate the cell 90 degrees clockwise
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

     ...

     CGAffineTransform rotateCell = CGAffineTransformMakeRotation(M_PI_2);
     cell.transform = rotateCell;    

     return cell;

在每个单元格中,您可以放置​​代表一个“屏幕”或“页面”的控件。作为 UIScrollView 的 UITableView 支持分页,因此您可以利用它。

【讨论】:

以上是关于带有 UITableView 的页面的主要内容,如果未能解决你的问题,请参考以下文章

UIPageControl 与 UITableView

将 UITable 行号从大到小反转(...5,4,3,2,1)

在 UIViewController 上使用 UITableView

CAGradientLayer 在 UITableView backgroundColor 上不起作用

不调用UITableView Delegate

在 UITableView 中滚动时移除 UIView