gpt4 book ai didi

ios - 删除特定部分中的 UITableView 单元格

转载 作者:行者123 更新时间:2023-11-30 11:18:53 25 4
gpt4 key购买 nike

有一个任务。每个单元格都包含一个按钮,单击该按钮即可删除该单元格。问题是部分用于按类别描述整个列表。我从 Realm DB 获取的数据。删除必须在两种情况下发生,因为名称重复,因此您需要考虑标签中的名称和部分的名称。我将非常感谢带有注释的示例代码。

import UIKit
import RealmSwift

class PurchesViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

@IBOutlet weak var purchesTableView: UITableView!
let manage = ManagerData()

override func viewDidLoad() {
super.viewDidLoad()
purchesTableView.delegate = self
purchesTableView.dataSource = self
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
purchesTableView.reloadData()
}

func numberOfSections(in tableView: UITableView) -> Int {
return manage.loadPurchases().0.count
}

func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return manage.loadPurchases().0[section]
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return manage.loadPurchases().1[section].count
}

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

cell.productLabel.text = manage.loadPurchases().1[indexPath.section][indexPath.row]
cell.weightProductLabel.text = manage.loadPurchases().2[indexPath.section][indexPath.row]
cell.weightNameLabel.text = manage.loadPurchases().3[indexPath.section][indexPath.row]

// cell.boughtButton.addTarget(self, action: #selector(removeProduct), for: .touchUpInside)

return cell
}
}

class CustomPurchesTableViewCell: UITableViewCell {
@IBOutlet weak var boughtButton: UIButton!
@IBOutlet weak var productLabel: UILabel!
@IBOutlet weak var weightProductLabel: UILabel!
@IBOutlet weak var weightNameLabel: UILabel!

@IBAction func removePurches(_ sender: Any) {
print("remove")
}
}

获取数据的方法

func loadPurchases() -> ([String], Array<Array<String>>, Array<Array<String>>, Array<Array<String>>) {
var sections: [String] = []
var product = Array<Array<String>>()
var weight = Array<Array<String>>()
var nameWeight = Array<Array<String>>()

let realm = try! Realm()
let data = realm.objects(Purches.self)
for item in data {
if sections.contains(item.nameDish) == false {
sections.append(item.nameDish)
}
}

for a in sections {
var productArr = Array<String>()
var weightArr = Array<String>()
var nameWeightArr = Array<String>()
for prod in data {
if a == prod.nameDish {
productArr.append(prod.product)
weightArr.append(prod.weight)
nameWeightArr.append(prod.nameWeigh)
}
}
product.append(productArr)
weight.append(weightArr)
nameWeight.append(nameWeightArr)
}
return (sections, product, weight, nameWeight)
}

最佳答案

您将在单元格类中获得的索引路径索引路径有两个属性部分和 TableView 行

现在您可以在 Controller 类中创建更多方法,并将变量分配给每个单元格,或者您可以使用 TableView 提供的 editAction 进行删除

关于ios - 删除特定部分中的 UITableView 单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51502732/

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