swift - 如何在 swift 5 中更新具有不同标识符的不同单元格

标签 swift

我是 swift 新手,我想到的这个应用程序基本上需要根据从其中一个单元格接收到的数据来更新所有单元格。

我正在使用动态单元格,每个单元格内部都有一个文本字段。

TableViewController.swift:

import UIKit

class MyCells: UITableViewCell{

@IBOutlet weak var value_textfield: UITextField!

}

class TableViewController: UITableViewController {

var units_length: [String] = ["Centimeter", "Meter", "Foot"]

override func viewDidLoad() {
    super.viewDidLoad()
    units_length = units_length.sorted()
    self.tableView.keyboardDismissMode = .onDrag
}

override func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return units_length.count
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)

    cell.textLabel?.text = units_length[indexPath.row]
    cell.textLabel?.textColor = UIColor.white
    cell.textLabel?.font = UIFont(name:"DINAlternate-Bold", size:30)

    return cell
}

override func viewWillAppear(_ animated: Bool){
    tableView.rowHeight = 100
}

}

我应该使用哪个函数来访问具有不同标识符的所有单元格并同时更新每个单元格内的所有文本字段?

我确实可以通过另一个名为 MyCells 的类来访问文本字段,我应该如何实现它? (我不会在这里包含基本的 ViewController 类,因为里面什么都没有)

谢谢!

最佳答案

通常您使用已经展示过的函数:cellForRowAt。您更新模型数据,告诉表格reloadData,为所有可见单元格调用cellForRowAt,并且它们的值成为新值。

但是,如果您在每个角色之后进行更新,我会设置一个通知广播情况,并一起更新所有可见的文本字段和模型,而无需重新加载。只需确保模型和表格保持同步,以防用户滚动并调用 cellForRow

关于swift - 如何在 swift 5 中更新具有不同标识符的不同单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59655908/

相关文章:

ios - Swift:无法删除具有基于条件的字符限制的文本字段中的字符

swift - 谷歌登录 + Facebook

swift - 在 Swift 中使用 C 宏

ios - Swift 3,显示一些 HTML 文本行

swift - 遵循一个协议(protocol)并在另一个采用该协议(protocol)的类初始值设定项中使用 self 作为参数

ios - 如何以正确的方式实现委托(delegate)方法?

ios - 运行第二个单元测试时核心数据实体名称为零

ios - iPhone 和 iPad 上的 View 放置方式不同

iOS:文档目录为 'cleaned'

swift - 带有基于 iOS 的 WatchKit-Extension 的 RealmSwift-1.2 和 iOS-9(全部在 iPhone 上)