在这种情况下我真的应该使用UITableView吗?

时间:2010-04-08 16:30:57

标签: iphone uitableview

想象一下你有这样的观点:

在顶部,有一个UISegmentedControl有两个段。它的功能类似于标签。按一个细分将激活UISegmentedControl以下的特定内容。

UISegmentedControl下面是一些开关。这些修改了内容的呈现方式。

最后,在这些开关下方,有一张桌子。想象一下一张不是UITableView意义上的表,而是它的真实含义:一张桌子。它显示了一些消息,例如Twitter消息或聊天消息,例如一个在另一个之下。就像你从skype和其他聊天中知道的那样。基本上它们只是具有一些格式的行。标签,一些图像视图,一些线条,背景。非常基本。

数据来自数组。没有核心数据。包括分段控制和设置开关在内的整个过程必须是可滚动的。

所以我做的是:我把所有这些东西放在UIScrollView中。现在我必须做出决定,如果我在那里使用UITableView表格部分,或者我只是在滚动视图上打印很多行(使用-drawRect:)。

但是我脑子里有些问题:我可以在UITableView内加UIScrollView吗?我认为这会带来很多问题。我不希望表部分可以单独滚动。

再次想象一下这个观点:首先有一些基本的选择(分段控制,交换机)。然后是桌子。当你滚动时,整个事物滚动。这主要是因为设置的第一部分可能非常大,所以你想要滚动它。

接下来是:我可以通过这种方式自定义UITableView,它由两部分组成吗?一个用于该设置部分,一个用于显示实际数据?

1 个答案:

答案 0 :(得分:1)

好吧,如果您要使用drawRect显示标签,则需要确保您只绘制了用户可以看到的屏幕部分(或者您浪费了大量时间)。此外,你需要处理计算,这不是很大,但这很痛苦。

或者,你可以使用UILabel并在它们滚出屏幕时回收它们(或者你浪费内存)。

然后,您将要在类中包含它以保持代码清洁。此外,您可能希望现在或将来自定义数据的“行”。最好把它们放到课堂上。

当你完成时,你已经编写了表视图类,功能更少,更难使用。

如果您不希望表视图类可以独立滚动,那么有一个类似“scrollingEnabled”的属性

ETA:

是的,很容易为不同的部分创建不同类型的单元格。只需根据传递给cellForRow

的indexPath.row参数返回不同的单元格