【问题标题】:Define cells for UITableView with non-uniform data使用非统一数据为 UITableView 定义单元格
【发布时间】:2011-01-12 17:01:57
【问题描述】:

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

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

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

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

有什么想法吗?

【问题讨论】:

    标签: iphone uitableview uikit


    【解决方案1】:

    看看Matt Gallagher's Tableview Classes。它们为可定制的 Tableviews 提供了一个简单且可扩展的框架。单元格可以从 NIB 加载或在代码中构建。有一个简单的界面可以为每个单元格提供数据 (- (void)configureForData:(id)dataObject)。

    填充表格视图很容易:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-06
      • 1970-01-01
      • 2012-02-06
      • 2012-01-07
      相关资源
      最近更新 更多