gpt4 book ai didi

swift - 如何从数组的已知索引(整数)而不是从 IndexPath 获取 UITableViewCell?

转载 作者:行者123 更新时间:2023-11-30 10:39:56 24 4
gpt4 key购买 nike

有一个包含 50 个元素的数组 data,我将它们显示在 UITable View 上。我在每个 UITableViewCell 上都有一个按钮,当我单击该按钮时,我通过向其添加边框来突出显示该单元格。突出显示的单元格中的数据存储在另一个数组 highlightedData 中。此 highlightedData 数组的长度始终为 2 因为我只想在表格 View 中突出显示两个单元格。当我选择第三个单元格时,我删除元素 highlightedData.remove(at: 1) 并将第三个单元格中的新数据附加到 highlightedData 中。当从 highlightedData 数组中删除数据时,我想删除单元格的边框。有没有一种方法可以根据 data 数组中数据的索引从 TableView 中获取单元格?我不希望单元格由 indexPath 返回,而是由 integer 返回。

这是我的代码,以便更好地理解:

func buttonClicked(_ cell: ExampleTableViewCell) {
guard let indexPath = tableView.indexPath(for: cell) else {
return
}
if highlightedData.count == 2 {
// here I want to get the cell of the element at the index: Int = data.indexOf([highlightedData[1]])
highlightedData.remove(at: 1)
}
highlightedData.append(data[indexPath.row])
if highlightedData.count == 2 {
print("open a new vc")
}
}

最佳答案

由于在 cellForRowAt 内部,您应该有类似的内容

// suppose border for someView
cell.someView.layer.borderWidth = highlightedData.contains(indexPath.row) ? 2 : 0

然后只重新加载 buttonClicked 的表格末尾,你也可以这样做

if let cell = tableView.cellForRow(at: IndexPath(row:highlightedData[1], section: 0)) as? ExampleTableViewCell {
print(cell)
}

但不建议这样做,因为您当前的更改将从单元格中删除边框并将其添加到另一个适合重新加载的单元格

关于swift - 如何从数组的已知索引(整数)而不是从 IndexPath 获取 UITableViewCell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57043565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com