代码之家  ›  专栏  ›  技术社区  ›  flxkid

为UITableView使用接口生成器

  •  9
  • flxkid  · 技术社区  · 17 年前

    我很早就开始了iPhone开发学习过程。我在试着让自己的头避开各种各样的碎片。现在,我刚刚使用了基本的navigationcontroller模板,并尝试创建一个简单的分组表视图,其中包含几个文本字段。我不能做的是让Interface Builder允许我将UITableViewCell放到UITableView中,这样我就可以在单元格中添加文本字段。这是可能的吗(它似乎应该被赋予这样一个事实:UITableViewCell是一个可拖动的控件)?

    如果不是,这是否意味着所有这些都是我需要自己编写的代码?

    4 回复  |  直到 11 年前
        1
  •  17
  •   Chris Lundie    17 年前

    可以使用Interface Builder创建单元格,但必须使其成为顶级对象,而不是表视图的子对象。然后您可以在视图控制器的 表视图:cellForRowatindexPath: 功能。

    确保给手机一个 标识符 在Interface Builder中,然后使用相同的标识符 DequeueRusableCellWithIdentifier: (请参阅示例代码了解这是如何工作的——其想法是重新使用单元格——操作系统将一次只分配屏幕上适合的单元格数。节省记忆的聪明方法。)

        2
  •  6
  •   Souljacker    14 年前

    小心引导到头部的方法。如果你处理不当,你会泄密的。 IBOutlets .我将尽我所能解释这一点,而不发布代码(NDA)。如果计划使用ib创建单元,请将 UITableViewCell 它是自己的XIB文件。将文件的所有者设置为 UIViewController 子类(或) UITableController )打电话给 IBOutlet 类似的东西 UITableViewCell *cellFactory . 在 UITableViewDataSource 方法 tableView:cellForRowAtIndexPath: 执行以下伪代码;

    1. 尝试使用在ib中设置的标识符使单元格出列
    2. 如果成功,就完成了。只需使用手机
    3. 否则,您需要创建一个新的单元格。使用 [NSBundle mainBundle] loadNibNamed:owner:options: 方法在其中使用合适的XIB文件。这将使CellFactory Ivar充满新鲜的细胞。棘手的部分来了。
    4. 设置 cell = cellFactory 然后释放 cellFactory 并将其设置为零,以确保您不会意外地再次使用它。你现在可以正常使用手机了
        3
  •  1
  •   Mark Bessey    17 年前

    不幸的是,它并不是这样工作的——表视图中的单元格是由委托在运行时生成的。但事实证明这是非常简单的代码。查看TableView示例代码,很容易理解。

        4
  •  1
  •   mattjgalloway    14 年前