如何在UITableView中进行编辑?

9
有没有一种标准的方法来设置一个表格以允许就地编辑,类似于这样:enter image description here目前我只需要可编辑的文本,但将来可能需要UISwitches或UISliders。
2个回答

18

没错,只需添加一个UITextField,将其fonttextColor设置为适当的值,并将其作为表格单元格的子视图添加到contentView中。你可能还想给字段设置一个tag ,这样你就可以使用contentView-viewWithTag:方法轻松地引用它。

如果您只有少量表单,那么您可以通过保留一个单元格数组(每个字段一个)并将它们直接交给表视图来完成,而无需使用-dequeueReusableCellWithIdentifier:机制处理。但是,如果您需要输入大量内容,则会变得更加复杂。在这种情况下,您可能需要为每种类型的单元格分配不同的重用标识符-一个用于文本字段单元格,一个用于开关单元格,一个用于滑块单元格等。一旦您已经重新排队或创建了行的单元格,您就可以从内容视图中获取其控件(如上所述),并从存储该控件值的任何位置设置其值。


1
谢谢!如果我在TableView之外单击,如何结束编辑单元格? - Rudolf J
实际上将它们作为contentView的子视图添加不会使其看起来像图片中那样。它会出现在文本标签下面。我将文本字段设置为accessoryView,它可以工作。但是你必须硬编码它的宽度作为一个魔数,如果你支持两个屏幕方向,这将是一个问题。 - Isuru

0

使用“内容:静态单元格”进行原地编辑,并使其看起来像默认样式的UITableviewCell。

  1. 在UITableView中创建两个单元格:一个自定义单元格和一个副标题样式的单元格。
  2. 将副标题样式的UITableViewCell对应的“标题”标签复制到自定义UITableViewCell中。
  3. 在自定义UITableViewCell中,放置一个UITextField。将副标题样式UITableViewCell中的详细UILabel的样式参数复制到此UITextField中。
  4. 进行必要的安排。

它们看起来相当相似,不是吗?

现在,进行IBoutlet操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接