gpt4 book ai didi

ios - 按下按钮时如何在 UITableviewCell 中显示自定义 View ?

转载 作者:搜寻专家 更新时间:2023-10-31 23:00:25 24 4
gpt4 key购买 nike

最近开始学习iOS开发,遇到了一些问题。

我有一个带有自定义单元格的表格 View :标签、 ImageView (默认情况下隐藏)和一个按钮。我希望它能够工作,以便在单击单元格的按钮时显示 ImageView 。问题是每次重用单元格时,都会显示重用单元格的 ImageView 。我想让它工作,以便如果为第一个单元格按下按钮,则仅显示第一个单元格 ImageView 。如果按下第一个和第三个单元格的按钮,则 ImageView 应仅显示第一行和第三行,而不显示任何其他行。

我目前的解决方案:

class CustomTableViewCell: UITableViewCell {

@IBOutlet var cellTitleLabel: UILabel!
@IBOutlet var cellImageView: UIImageView!
var showImageView = false


@IBAction func showImageViewAction(sender: UIButton) {
showImageView = true
displayCell()
}

func displayCell() {
if showImageView {
cellImageView.hidden = false
} else {
cellImageView.hidden = true
}
}
}

对于 View Controller :

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 30
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("CustomCell", forIndexPath: indexPath) as! CustomTableViewCell

return cell
}

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
let customCell = cell as! CustomTableViewCell
customCell.displayCell()
}

关于如何创建以便在重复使用单元格时隐藏 ImageView 的任何建议?

最佳答案

如果你必须保存 cellImageview.hidden 状态,就这样做:

添加协议(protocol)以通知 MainClass 按下了 actionButton:

protocol customCellDelegate{
func actionButtonDidPressed(tag: Int, value: Bool)
}

比在你的 CustomTableViewCell 中声明

var delegate: customCellDelegate?

并在 @IBAction func showImageViewAction(sender: UIButton) 添加:

@IBAction func showImageViewAction(sender: UIButton) {
cellImageView.hidden = ! cellImageView.hidden
delegate?.actionButtonDidPressed(self.tag, value: imageCell.hidden)
}

在您的 mainView 中使其符合 customCellDelegate

var status = [Bool]()

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let rowCount = 100
for _ in 0 ..< rowCount{
status.append(true)
}
return rowCount
}


func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell") as! customcell
cell. cellImageView.hidden = true
cell. cellImageView.hidden = status[indexPath.row]
cell.delegate = self
cell.tag = indexPath.row

return cell
}

func actionButtonDidPressed(tag: Int, value: Bool) {
status[tag] = value
}

关于ios - 按下按钮时如何在 UITableviewCell 中显示自定义 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36531010/

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