gpt4 book ai didi

ios - 如何只修改表格 View 的一个自定义单元格的属性?

转载 作者:行者123 更新时间:2023-11-28 06:13:27 25 4
gpt4 key购买 nike

我想要一个表格 View 单元格,其中包含一个按钮,每次按下该按钮时标签都会递增 1。因此,如果按下按钮,标签将显示:“1、2、3、4”等。我希望每个单元格行彼此独立,这意味着我只希望单元格行 3 中的增量按钮修改第 3 行单元格的标签和第 4 行单元格的标签,依此类推。

但是我当前的代码功能执行以下操作:

  1. 当我按下递增按钮时,它会更改所有单元格的标签,而不仅仅是按下按钮的标签(我不想要这个)。

  2. 当我滚动表格 View 时,即使我没有按下该行中的按钮,所有标签也会发生变化(我也不想这样做,我只希望标签在相应的增量按钮时发生变化已按下)。

任何人都可以帮助获取我的代码或帮助我构建一些代码来帮助我实现我的目标吗?

在此先感谢所有的帮助!

我的代码:

 import UIKit


var bookieFlavors = ["Chocolate Chip", "Sugar w/o icing", "Sugar w/ icing", "Peanut Butter", "Honey", "Shortbread", "Ginger", "Double Chocolate", "Macadamie Nut", "Oatmeal Raisin", "Snickerdoodle"]
var labelAmount = Int()


class FlavorsController: UIViewController, UITableViewDelegate, UITableViewDataSource {


@IBOutlet weak var flavorTable: UITableView!



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

}

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

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

//flavor label configuration
cell.flavorLabel.text = bookieFlavors[indexPath.row]



//amount configuration
cell.bookieAmount.text = "= \(amount)"



return cell

class FlavorTableCell: UITableViewCell {



@IBOutlet weak var flavorLabel: UILabel!

@IBOutlet weak var bookieButton: UIButton!
@IBAction func bookieButton(_ sender: UIButton) {
for _ in 1...15 {

bookieAmount.text = "= \(String(describing: amount))"
}
labelAmount += 1
}


@IBOutlet weak var bookieAmount: UILabel!

最佳答案

您不能在 tableview 单元格中添加按钮操作来执行此操作。请检查以下代码以获取解决方案。

import UIKit

class FlavorsController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var bookieFlavors = ["Chocolate Chip", "Sugar w/o icing", "Sugar w/ icing", "Peanut Butter", "Honey", "Shortbread", "Ginger", "Double Chocolate", "Macadamie Nut", "Oatmeal Raisin", "Snickerdoodle"]
var labelAmount = [Int]() // To keep track of the amount in each cell

@IBOutlet weak var flavorTable: UITableView!

override func viewDidLoad() {
super.viewDidLoad()
for item in self.bookieFlavors {
self.labelAmount.append(0) //Initialise with default value
}
}

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

}

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

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

//flavor label configuration
cell.flavorLabel.text = bookieFlavors[indexPath.row]

//amount configuration
cell.bookieAmount.text = "= \(self.labelAmount[indexPath.row])"
cell.bookieButton.tag = indexPath.row
cell.bookieButton.addTarget(self, action: #selector(bookieButton(_:)), for: .touchUpInside)

return cell
}

//To configure the button click and according changes
@IBAction func bookieButton(_ sender: UIButton) {
self.labelAmount[sender.tag] = self.labelAmount[sender.tag] + 1
let cell = self.flavorTable.cellForRow(at: IndexPath(row: sender.tag, section: 0)) as? FlavorTableCell
cell?.bookieAmount.text = "= \(self.labelAmount[sender.tag])"
}
}

class FlavorTableCell: UITableViewCell {

@IBOutlet weak var flavorLabel: UILabel!

@IBOutlet weak var bookieButton: UIButton!

@IBOutlet weak var bookieAmount: UILabel!
}

关于ios - 如何只修改表格 View 的一个自定义单元格的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45809520/

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