ios - 如何确定单元格索引路径是否在 uitableview 中更改

标签 ios swift uitableview

我有两个问题:

1- 是否可以知道 UITableView 中的单元格 indexPath.row 是否已更改?例如,如果我在 index (0) 处有一个元素,然后添加另一个元素,则第一个元素将位于 index (1) 处。是否有可能检测到这种变化?

2- 是否可以通过单元格标题查找元素的索引?例如,我在表格 View 中有 X,Y,Z 元素,我想知道“X”放置在哪个单元格中?

谢谢大家,

最佳答案

一般来说,隔离模型和 View 是常见的做法。我的意思是,将数据的存储和呈现数据的 View 分开。

例如,您可能正在创建颜色名称的表格 View 。因此,您可以将颜色名称数组存储为 View Controller 的属性

class UIColorViewController: UITableViewController{

    let colors = ["Black", "Blue", "Yellow"]

正如我确信您正在做的那样,您可以将 View Controller 指定为 TableView 的数据源,这样您就可以告诉它您想要多少个部分、一个部分中您想要的行数以及什么渲染到单元格上。

在这个基本示例中,部分的数量可以是 1,并且该部分中的行数将是颜色数组的长度。现在,当将数据渲染到单元格上时,您只需通过索引路径索引颜色数组即可。

fun tableView(UITableView, cellForRowAt: IndexPath){
    var color = colors[indexPath.row]
    cell = //dequeue cell
    cell.textLabel?.text = color
    return cell
}

因此,通过将数据与 View 分离,如果您想找到特定值所在的单元格,您可以简单地搜索颜色所在的数组,返回的索引将相当于该颜色所在的单元格或将取决于该单元格是否已渲染到屏幕上。

例如,如果我正在寻找“蓝色”,则使用颜色数组

for (index, color) in self.colors.enumerated{
    if color == 'Blue'{
        print("Found Blue at index \(index)")
    }
 }

当你想要添加一个单元格或删除一个单元格时,你只需修改存储模型数据的颜色数组,执行适当的 TableView 相关操作,并且数组中颜色的索引将保持不变相当于表格 View 中单元格的索引。

关于ios - 如何确定单元格索引路径是否在 uitableview 中更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40942979/

相关文章:

iphone - 缩放 UIScrollView(不仅仅是其内容)

iOS 在关闭 View Controller 后释放内存

javascript - WKWebview从iPhone的文档目录加载外部脚本JS

ios - 在 UIScrollView 中嵌入 UIWebView 有多糟糕?

ios - 如何将导航栏大标题转换为多行,居中对齐

ios - SWIFT:更新现有的核心数据对象

ios - 解析实时查询 cocoapods 和 Swift 3

swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?

objective-c - UItableviewcell 中的按钮

ios - UISearchController 搜索栏不隐藏导航栏