带有 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 的页面的主要内容,如果未能解决你的问题,请参考以下文章
将 UITable 行号从大到小反转(...5,4,3,2,1)
在 UIViewController 上使用 UITableView