我正在尝试构建一个带有两个表并排的iphone应用程序,其中两个表始终可见且可单独滚动。这可能吗?
我在这个网站上已经阅读了类似问题的一些答案,人们建议使用'两个UITableViewControllers,并排'
听起来就像我需要的那样,但我找不到任何例子。
我的主要问题是:你如何在IB的同一屏幕上实际获得两个UITableViewControllers?
或者,通过在单个UITableViewController中并排使用两个TableView来实现此目的是正确的方法吗?
非常感谢任何帮助
答案 0 :(得分:1)
您可以在一个nib文件中有两个UITableView
(因此它只有一个视图控制器)。但是将2个不同的类(符合UITableViewDataSource
协议)设置为2个表视图的数据源。
答案 1 :(得分:1)
虽然我从上面的@Aadhira的答案中得到了初步指导,但我认为我完全回答了我的问题,其他任何可能会觉得有用的人(顺便说一下,我让它工作)
我创建了一个具有以下视图/视图控制器层次结构的故事板
UITableViewController控制器 - UITableView ViewContainer - UITableView Left - UITableView Left
我创建了表视图'ViewContainer'来'包含'我想要绘制的两个表视图(左和右)。之所以我觉得这样做更容易,因为没有其他方法可以调整IB中左右表视图的大小,以便它们只占用屏幕的一半。每当我将它们直接放在表视图控制器控制器中时,它们就会占用全部的宽度(我想我可以以编程方式控制它们的宽度)。将它们放在表视图中ViewContainer允许我调整它们的大小。
我使Controller成为Left和Right的委托和数据源。 然后,在Controller内部,我必须确保我有一些代码来识别正在绘制哪个表(左或右)。 ViewContainer在很大程度上被忽略了,到目前为止我还没有使用它
我将以下代码添加到numberOfSectionsInTableView,numberOfRowsInSection和cellForRowAtIndexPath
switch (tableView.tag) {
case 100: //the requesting object is the Left TableView
{
//perform functions specific to Left;
}
break;
case 200: //the requesting object is the Right TableView
{
//perform functions specific to Right;
}
break;
default:
//error handling code
break;
}
我将表格视图Left和Right的标签分别设置为100和200。这允许我正确地填充左和右(它们包含不同的对象)
答案 2 :(得分:0)
在iphone中搜索SplitView控制器。您将得到答案