如何获取表格视图功能之外的单元格?

Posted

技术标签:

【中文标题】如何获取表格视图功能之外的单元格?【英文标题】:how to get cell outside tableview function? 【发布时间】:2017-11-28 08:39:03 【问题描述】:

我想在函数内获取单元格(在 tableview 函数之外)。尝试这样,但是当它更改为第 1 行时,它崩溃了。

到目前为止,这是我的代码:

func ValueChecker(cell: UITableViewCell)
    let subCellInt = Int(CustomUserDefaults.shared.getSubCellRow())!
    let cell = self.tableView.cellForRow(at: IndexPath(row: 0, section: 0)) as! BankPaymentDetailsCell
    let mainMenuValue = CustomUserDefaults.shared.getSubCell()
    if(mainMenuValue=="00" || mainMenuValue=="01" || mainMenuValue=="02" || mainMenuValue=="03" || mainMenuValue=="04" || mainMenuValue=="05" || mainMenuValue=="06")
        selectedRow = -1
        cell.ivExpand.transform = CGAffineTransform(rotationAngle: (180.0 * CGFloat.pi) * 180.0)
    else
        cell.ivExpand.transform = CGAffineTransform(rotationAngle: (180.0 * CGFloat.pi) / 180.0)
    
    tableView.beginUpdates()
    tableView.endUpdates()

subCellInt 是我保存在本地的 indexpath.row。

如果我改成这样:

let cell = self.tableView.cellForRow(at: IndexPath(row: subCellInt, section: 0)) as! BankPaymentDetailsCell

它只对 0 号单元格(第一个单元格)有效,但在 1 号和 2 号单元格(对于 3 号单元格)时崩溃。

如何获取tableview函数外的单元格?

更新: 我使用此代码从外部 tableview 函数访问 tableview 单元格:

func ValueChecker(cell: UITableViewCell)
    let subCellInt = Int(CustomUserDefaults.shared.getSubCellRow())!
    let cell : BankPaymentDetailsCell = tableView.dequeueReusableCell(withIdentifier: "BankPaymentDetailsCell") as! BankPaymentDetailsCell
    let mainMenuValue = CustomUserDefaults.shared.getSubCell()
    if(mainMenuValue=="00" || mainMenuValue=="01" || mainMenuValue=="02" || mainMenuValue=="03" || mainMenuValue=="04" || mainMenuValue=="05" || mainMenuValue=="06")
        selectedRow = -1
        cell.ivExpand.transform = CGAffineTransform(rotationAngle: (180.0 * CGFloat.pi) * 180.0)
    else
        cell.ivExpand.transform = CGAffineTransform(rotationAngle: (180.0 * CGFloat.pi) / 180.0)
    
    tableView.beginUpdates()
    tableView.endUpdates()

到目前为止,它有效。它可以从外部 tableview 函数访问单元格,并且不再崩溃。

【问题讨论】:

【参考方案1】:

只有在有足够大的表格视图可以加载它们时才能访问表格视图单元格。

【讨论】:

我不这么认为,因为如果我在 tableview 函数中获取 tableview 单元格,它至少可以使用 1 行 是的,因为第一个单元格即使无法显示也是默认加载的。【参考方案2】:

您无法从外部访问 tableview 的任何随机单元格。 但是有一种方法可以实现这一目标。 你可以使用 让 visibleCells = yourTableView.visibleCells 通过这种方法,您可以获得一组可见单元格,您可以做任何您想做的事情

【讨论】:

以上是关于如何获取表格视图功能之外的单元格?的主要内容,如果未能解决你的问题,请参考以下文章

当单元格的高度不同时,如何在表格视图中获取所有单元格的高度?

如何从表格视图单元格中的图像手势获取 indexPath

如何在 Swift 中获取表格视图单元格数据的总和?

如何通过选择表格视图单元格获取字典值?

如何在基于部分的表格视图中获取开关更改事件中单元格的索引路径

如何在 UIMenuController 的自定义操作中获取点击的表格视图单元格