gpt4 book ai didi

ios - didSelectRowAt 不影响 cellForRowAt

转载 作者:行者123 更新时间:2023-11-28 10:58:04 24 4
gpt4 key购买 nike

我试图在按下 UITabelViewCell 时获得不同的标签文本,但我无法让它工作。 completed 的默认值为 false,触摸时应为 true,然后应更改标签。在 didSelectRowAt 中,completed 值不同,所以很好,但我无法将它传递给 cellForRowAt。

import UIKit

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

var listItems : [ListItem] = []

@IBOutlet weak var plusButton: UIButton!
@IBOutlet weak var tableView: UITableView!

override func viewDidLoad() {
//...
}


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

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

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
var item = listItems[indexPath.row]

item.completed = !item.completed // changing from true to false and rom false to true
tableView.reloadData()
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? CellData{
let item = listItems[indexPath.row]
cell.nameLabel.text = item.name
cell.userLabel.text = item.addedBy

if(item.completed == true){ //didSelectRowAt doesn't affect this item.completed
cell.doneLabel.text = "done"
} else {
cell.doneLabel.text = "not"
}
return cell
} else{
return CellData()
}
}
}

ListItem.swift:

struct ListItem{
var name : String!
var addedBy : String!
var completed : Bool!

init(name: String, addedBy: String, completed: Bool){
self.name = name
self.addedBy = addedBy
self.completed = completed
}

}

最佳答案

当您更新 ListItem 时,它是一个结构,它不会在列表中更新,因为结构总是被复制。我认为你应该做类似的事情:

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
var item = listItems[indexPath.row]
item.completed = !item.completed //
listItems[indexPath.row] = item
tableView.reloadData()
}

关于ios - didSelectRowAt 不影响 cellForRowAt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42076459/

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