gpt4 book ai didi

ios - 无法编辑/删除 uitableview 中的顶行 - Swift

转载 作者:行者123 更新时间:2023-11-28 15:09:08 28 4
gpt4 key购买 nike

不知道为什么,但我的 uitableview 的第一行不可编辑,所有其他行都正常运行并按预期删除。这就像 caneditrowat indexPath: Indexpath 不适用于那一行。请参阅所附图片。

我在 tableView(_:commit:forRowAt:) 中的代码看起来像我能找到的所有教程,似乎找不到任何其他有这个问题的例子。

//MARK: Properties
var favouriteExercises = [FavouriteExercise]()

override func viewDidLoad() {
super.viewDidLoad()

//Load exercises from local DB
if let savedFavouriteExercises = loadFavouriteExercises()
{
//loading exercises in from the favourites
favouriteExercises += savedFavouriteExercises
}

// Use the edit button item provided by the table view controller.
navigationItem.rightBarButtonItem = editButtonItem
}

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

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
//count number of rows in table
return favouriteExercises.count
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// Table view cells are reused and should be dequeued using a cell identifier.
let cellIdentifier = "FavouriteTableViewCell"

guard let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as? FavouriteTableViewCell else {
fatalError("The dequeued cell is not an instance of FavouriteTableViewCell.")
}

// Fetches the appropriate exercise for the data source layout.
let exercise = favouriteExercises[indexPath.row]

//setup the layout for the cell in the table view
cell.nameLabel.text = exercise.name
let url = URL(string: (exercise.iconUrl))!
cell.photoImageView.sd_setImage(with: url)
//cell.photoImageView.image = #imageLiteral(resourceName: "defaultPhoto")
cell.backgroundColor = UIColor.darkGray

return cell
}

// Override to support conditional editing of the table view.
override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
// Return false if you do not want the specified item to be editable.
return true
}

// Override to support editing the table view.
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
// Delete the row from the data source
favouriteExercises.remove(at: indexPath.row)
saveFavouriteExercisess()
tableView.deleteRows(at: [indexPath], with: .fade)
}
}

感谢帮助

最佳答案

 override func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle
{
return UITableViewCellEditingStyle.delete
}

答案改编自@KumarReddy 的解决方案

关于ios - 无法编辑/删除 uitableview 中的顶行 - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47951282/

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