2014-01-23 36 views
1

我有一个静态TableView,现在需要成为一个动态TableView,因为其他视图需要放置在ViewController周围,这不能在我的情况下使用容器来完成。如何将静态UITableView转换为动态TableView

问题是:我如何有效地将表视图从静态转换为动态?

我知道必须将继承从UITableView更改为UIViewController并添加委托方法。

但是如何处理所有的表格部分:我有3个部分,6种类型的单元格在静态表格中。我是否真的需要为所有这些单元类型分类UITableViewCell并手动处理所有事情,还是有更聪明的方法来做到这一点?

+0

你只需要改变数据源并发送'reloadData'消息到表格视图。问题是什么? – Desdenova

+0

@Desdenova只要我改变TableViews内容在Storyboard中从静态类型到动态类型,我将TableView中的所有部分(除第一个之外)松开 – brainray

+0

为什么您需要使tableview动态变为现实?重点是什么?如果你选择让你的表动态化,那么你必须在数组/字典中硬编码你的数据,并编写样板代码来填充tableview。我认为静态在这种情况下是更好的选择。 – NightFury

回答

0

你真的不能只是在两者之间进行转换。通过仅实现一些表委托方法,比如cellForRowAtIndexPath:,你就会丢失你的静态内容。也就是说,表格应该是整个时间都是动态的。这样,您可以定义逻辑来确定它是否应显示静态添加的内容或新的动态内容。

另外,您不需要视图控制器来实现委托/数据源方法。如果你已经有了UITableView的子类,那很好。您可以将其设置为自己的代理/数据源,并在子类中实现这些方法。

并回答你最后的问题,没有真的没有更好的方法来做到这一点。我建议您创建一个基类,它的子类UITableViewCell实现了单元格将共享的所有内容,然后在此基类的子类中实现各个更改。在表格视图中使用多个单元格子类听起来好多了。

+0

好吧,看起来我必须去的方式...顺便说一句:我确实需要一个UIViewController有可能放置TableView无论我想要的(使用一个容器在这种情况下不起作用,如上面的评论中所述) – brainray

+0

嗯,从完全成熟的静态TableView中这样做,它甚至比听起来好像恕我直言。苹果应该给我们一种在ViewController中使用静态电视的方法...... – brainray

+1

@brainray你可以做到这一点。在Interface Builder中向您的视图控制器添加一个表,选择它并导航到属性检查器。顶部的第一个下拉列表允许您在“静态单元”和“动态原型”之间切换 –

相关问题