gpt4 book ai didi

ios - Tableview 滚动更改选择

转载 作者:行者123 更新时间:2023-11-29 02:26:30 26 4
gpt4 key购买 nike

我查看了几个与此相关的 StackOverflow 问题,但似乎还没有很好地理解这个概念。

我有一个表格 View ,其中包含我使用枚举填充的几个单元格。当我向下滚动行时,表格中较低的另一行被选中。我实现了以下方法:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

var cell = tableView.dequeueReusableCellWithIdentifier("activityCell", forIndexPath: indexPath) as UITableViewCell

cell.textLabel?.text = activities[indexPath.item].rawValue;

return cell;
}

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

var cell = tableView.cellForRowAtIndexPath(indexPath);
cell?.selected = true;

}

我知道细胞是可重复使用的,但我无法正确理解这个概念及其应用方式。

你能帮我一些忙吗?

干杯

最佳答案

如果您要重用您的单元格,请按照您所做的方式在 indexPath 的 didSelectRowAtIndexPath 中将单元格设置为 selected ,这样重用的单元格也会反射(reflect)已更改的 selected 属性。相反,我建议向您的事件对象添加一个 bool 值 selected 属性,以便可以在 cellForRowAtIndexPath: 中进行选择更改,例如:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

var cell = tableView.dequeueReusableCellWithIdentifier("activityCell", forIndexPath: indexPath) as UITableViewCell

cell.textLabel?.text = activities[indexPath.item].rawValue
cell?.selected = activities[indexPath.item].selected
return cell;
}

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

activities[indexPath.item].selected = true
self.tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.None)

}

override func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {

activities[indexPath.item].selected = false
self.tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.None)

}

关于ios - Tableview 滚动更改选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27471261/

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