当前位置: 首页 > 面试题库 >

遍历给定部分ID的所有UITableCell

养研
2023-03-14
问题内容

使用Swift,如何遍历UITableCells给定的所有部分ID(例如:第2部分中的所有单元格)?

我只看到此方法:tableView.cellForRowAtIndexPath,在给定绝对索引的情况下返回1个单元格,因此无济于事。

有没有一种优雅轻松的方法?

注意:我想以 编程方式将 某个节中所有单元格的AccesoryType设置为None
,例如:单击按钮后或发生了某些事情之后(发生的事情与该问题无关)

我有UITableView的引用和本节的索引。


问题答案:

要回答我自己的问题: “如何遍历UITableCells给定的所有部分ID?”

要遍历一节的所有UITableCell,section必须使用两种方法:

  • tableView.numberOfRowsInSection(section)
  • tableView.cellForRowAtIndexPath(NSIndexPath(forRow: row, inSection: section))

因此迭代如下所示:

// Iterate over all the rows of a section
for (var row = 0; row < tableView.numberOfRowsInSection(section); row++) {
    var cell:Cell = tableView.cellForRowAtIndexPath(NSIndexPath(forRow: row, inSection: section))?

   // do something with the cell here.
}

在我的问题的最后,我还写了一个注释:“ 注意:我想以编程方式将一个节中所有单元格的AccesoryType设置为None
”。请注意,这只是一个注释,而不是问题。

我最终这样做是这样的:

// Uncheck everything in section 'section'
for (var row = 0; row < tableView.numberOfRowsInSection(section); row++) {
    tableView.cellForRowAtIndexPath(NSIndexPath(forRow: row, inSection: section))?.accessoryType = UITableViewCellAccessoryType.None
}

如果有更好的解决方案,请继续发布。

注意:我的表使用静态数据。



 类似资料:
  • 问题内容: 我正在运行以下代码,从具有特定列的所有表中提取所有相关的行。外层应该检查该迭代表中是否存在该列。如果没有,它应该完成该迭代并移至下一张表。如果表中有该列,则应检查该表是否将返回任何记录。如果没有要返回的记录,则应结束该迭代并移至下一个表。如果有记录,则应在SSMS中显示它们。 这似乎可行,因为SSMS仅返回带有有效条目的网格。我不明白的是:为什么我仍然会收到这些错误? 编辑 使用建议后

  • 问题内容: 这是我的代码: 这是我此页面的XML: 问题是我只能在LogCat控制台上得到它: 为什么我没有得到对TextViews的引用? 问题答案: 您需要递归遍历视图树。当前,您仅列出根视图的子级。 换句话说,您需要这样的东西:

  • 问题内容: 有没有一种方法可以获取Go语言映射中所有键的列表?元素的数量由给出,但是如果我有类似的地图: 如何遍历所有键? 问题答案: https://play.golang.org/p/JGZ7mN0-U- 要么 语句的Go语言规范指定第一个值是键,第二个变量是值,但不必存在。

  • 问题内容: 我有一个带有多个子SKSpriteNode的SKNode。一个简化的例子: 我想对所有这些孩子采取行动。当我在上执行操作时,没有任何效果。 我不能在父项上使用,因为它的许多子项已经具有我正在使用的名称。 有没有一种方法可以遍历的所有子项,以便对所有子项执行单个操作? 问题答案: 您可以简单地列举: 如有必要,请检查每个孩子是否确实是: 从 Swift 2(Xcode 7)开始, 可以将

  • 问题内容: 我们有一个软件不会删除不再需要的条目。为了了解服务器中有多少数据正在浪费,并准备进行大型清理操作,我试图遍历所有表并拉出标记为删除的记录。这就是我正在使用的: 这是我的错误: 消息116,级别16,状态1,行19当未将EXISTS引入子查询时,只能在选择列表中指定一个表达式。 我意识到我的错误可能与选择该行中的两列有关 但是,我不确定如何才能确保选择下一行。 PS仅用于脚本测试。 如何

  • 因此,在Visual Studio中,如果我有一个折叠的函数代码,当我展开它时,它也会展开其中的所有ifs、开关等。在Visual Studio代码hovewer中,如果我选择Fold All(),那么如果我想快速检查一个函数(通过鼠标单击行号附近的十字展开它),它会展开该函数,但它不会递归地展开,让我每隔一段时间就展开一个if/etc或case。有没有办法让它按照我预期的方式工作?