使用非统一数据为UITableView定义单元格

时间:2011-01-12 17:01:57

标签: iphone uitableview uikit

在我的应用程序中,我有一个Product对象的详细信息屏幕。 UI要求使用具有3个部分的分组表视图类型界面显示产品详细信息。

此表中的某些单元格是有条件的。例如,默认情况下,第三部分应显示一个单独的单元格,其中显示“注册产品”,并应在点击时推送注册视图。如果产品已经注册,则第三部分应显示两个单元格,一个用于保修,一个用于服务信息。这些将在敲击时分别进入不同的屏幕。此外,他们都需要在表格单元格上显示某种数据。保修单元表示保修到期时,维修单元表示下次维修到期时。

问题(最后):在任何给定情况下,定义表格应该具有的单元格和部分的最佳方法是什么。主要是我正在寻找一种可维护的方法,因为我已经有一些关于不可维护的方法的想法。

我应该根据所显示的产品在viewWillAppear期间创建某种键控字典并在其中添加/删除项目吗?我担心在各种tableView事件中我必须使用的数字Switch语句来检查给定索引路径中的单元格类型。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

看看Matt Gallagher's Tableview Classes。它们为可自定义的Tableview提供了一个简单且可扩展的框架。可以从NIB加载单元格或使用代码构造单元格。有一个简单的接口为每个单元格提供数据(- (void)configureForData:(id)dataObject)。

填充Tableview非常简单:

[self addSectionAtIndex:0 withAnimation:UITableViewRowAnimationNone];
[self appendRowToSection:0
    cellClass:[NibLoadedCell class]
    cellData:@"This is row 0"
    withAnimation:UITableViewRowAnimationLeft];

对于数据的持久存储,我建议创建一个plist字典并从那里加载/保存数据。见Property List Programming Guide。对于复杂的数据库结构,使用核心数据进行存储。