我在一个视图中看到过有关mutliple UITableViews的问题,但它们一次只能看到一个表。我喜欢不同的东西。
在我的脑海里,我想在一个UIView里面的一个UIScrollView中看到四个UITableViews。这四个表将立即可见并填充。它们将具有动态的行数,因此滚动视图将允许用户滚动页面以查看不适合的行。
桌子将并排放置两个,然后在它们的下方并排放置,这样你就可以得到一个2x2的正方形。
我可以(有点)围绕如何在控制器等中编码,但我无法弄清楚如何组织层次结构。我已经尝试使用存储板来布局视图中的表格,但是10个中有9个尝试删除控件失败,因为我显然没有完全理解这一点。
我是否需要在UIViews实现文件中生成UITableViews并将它们作为对象添加到UIView中?或者我可以使用故事板吗?
有人可以解释一下如何构建对象的层次结构吗?
在我脑海中它会是: 的UIViewController
- >的UIView
--->的UIScrollView
------> UITableView的
------> UITableView的
------> UITableView的
------> UITableView的
但在Storyboard中尝试此功能不起作用。我假设每个UITableView都需要自己的UITableViewController以及我在其他帖子中读到的内容,我希望在UIViewController实现文件中进行连接。
感谢任何帮助。
答案 0 :(得分:4)
我想你可能会尝试将UITableViewController拖到你的视图控制器中,至少我没有那个问题来将4个表视图添加到滚动视图中。
这是我如何添加它
<强> 1.&GT;将滚动视图控件拖动到视图控制器
您的视图控制器应如下所示:
<强> 2.&GT;将表视图控件拖到滚动视图中,并设置该表视图的大小和位置
您的视图控制器应如下所示:
<强> 3.&GT;然后将所有其余3个表视图拖到滚动视图
但我想在你的案例中提出一些建议
在同一个视图控制器中没有使用那么多的表视图,代码中的混乱是为了维护它们。总有更好的 选项比4表视图,也许考虑集合视图。甚至 分开使用流程。
如果我是你,我不会在Scroll视图中使用表视图,它们就像滚动视图里面的滚动视图,如果你不设计 非常好的互动,它们变得非常难以使用。
- 如果您仍想在同一个视图控制器中使用四个表视图,则需要额外注意表视图数据源和委托。非常小心处理所有案件。
醇>
希望对你有所帮助。
答案 1 :(得分:3)
表格视图是非常自定义的滚动视图。我不会把它们中的4个放在滚动视图上,这对用户来说不是很直观,因为你的手指会以多种方式滚动视图,具体取决于它接触屏幕的位置。
相反,尝试将2个2x2模式中的4个tableview直接放到简单的UIView上。这可以在Storyboard中完成。
至于填写和使用它们,你有两种方法:
A)你的UIViewController是4个tableviews中每个的委托和数据源。执行时,您可以在第一个参数(调用您的tableview)上执行切换,以确定适当的操作过程。
B)您创建了4个类,每个类处理一个表视图,在UIViewController中实现4个对象,并将UITableviews的委托和数据源属性分配给这些对象。
除了所有技术性之外,单个屏幕中的4个桌面视图非常拥挤。你的设计肯定不会在iPhone上飞行,所以我只假设iPad。即便如此,你应该确保一切都具有视觉吸引力,并且每个控件的目的都很明确。这取决于你,但我不愿意看到你在应用程序上努力工作,只是因为你的视觉设计不适合你的用户而浪费你的努力。
答案 2 :(得分:2)
如果表视图占据滚动视图的整个区域,那么它们不会让任何滚动事件过去到包含它们的滚动视图,除非滚动是水平的。
对于表视图和视图控制器之间的简单一对一,我会让每个表视图都是它自己的UITableViewController的一部分(所以你有四个),然后创建一个UIViewController,将每个UITableViewControllers添加到它一个孩子。
这样你就不必对tableview要求数据的语句做任何奇特的逻辑,因为表视图控制器只有一个表视图。