gpt4 book ai didi

swift - reloadRows 无法正常工作

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

当文本扩展 100 个字符时,我的 commentCell 中会出现一个更多按钮。当我按下它时,单元格应将行数限制为 0 并重新加载单元格。

问题是我必须按两次单元格才能放大,两次才能最小化单元格。

这是我放大单元格的代码:

@IBAction func expandTextField(_ sender: UIButton) {
let currentIndexPath = IndexPath(row: sender.tag, section: 0)
self.state = !self.state
print(state)

self.tapMore.setTitle(self.state ? self.decreaseState: self.expandState, for: .normal)
self.commentLabel.numberOfLines = (self.state ? self.expandedLines: self.numberOfLines)

self.parentViewControllerCommentCell?.tableView.reloadRows(at: [currentIndexPath], with: .none)
}

注意:该功能可以正常工作,但前提是总共点击两次。正确的单元格放大,按钮的描述相应改变。

重要

我尝试使用 print 语句来查看状态何时发生变化。正如我所说,它只会每隔两次执行一次。

true
true
false
false

当我删除

self.parentViewControllerCommentCell?.tableView.reloadRows(at: [currentIndexPath], with: .none) 

功能,一键更改。

提前致谢!

最佳答案

UITableView 重用单元格。当您重新加载一行时,它会被替换为可重复使用的单元格。

不保证重用的单元格将具有您在被替换的单元格中设置的参数。

您应该将表格 View 中的字符数是否达到 100 个 bool 值存储在数据存储中,而不是存储在单元格本身中。

关于swift - reloadRows 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44863341/

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