gpt4 book ai didi

uitableview - allowsMultipleSelection 在 Swift 中不起作用?

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

我非常沮丧,因为它浪费了我很多时间。我不知道为什么 allowsMultipleSelection 在我的 TableView 中不起作用?为了使它起作用必须做的所有事情,我做了但仍然没有结果。请查看我的代码,并请让我知道问题。

override func viewDidLoad()
{
super.viewDidLoad()

// Do any additional setup after loading the view.

self.participantsTableView.allowsMultipleSelection = true
}

if tableView == participantsTableView
{
var cell = tableView.cellForRowAtIndexPath(indexPath)!

if cell.accessoryType == UITableViewCellAccessoryType.Checkmark
{
cell.accessoryType = UITableViewCellAccessoryType.None
}

else
{
cell.accessoryType == UITableViewCellAccessoryType.Checkmark
}

self.participantsTableView.reloadData()
}

最佳答案

您需要实现委托(delegate)方法 tableView:didDeselectRowAtIndexPath: 并在 tableView:cellForRowAtIndexPath: 中更新单元格的 accessoryType。

像这样:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if let cell = tableView.cellForRowAtIndexPath(indexPath) {
cell.accessoryType = .Checkmark
}
}

func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
if let cell = tableView.cellForRowAtIndexPath(indexPath) {
cell.accessoryType = .None
}
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cellId", forIndexPath: indexPath) as UITableViewCell
cell.textLabel?.text = String(indexPath.row)

if let selectedPaths = tableView.indexPathsForSelectedRows() as? [NSIndexPath] {
let selected = selectedPaths.filter(){ $0 == indexPath }
if selected.count > 0 {
cell.accessoryType = .Checkmark
} else {
cell.accessoryType = .None
}
}
return cell
}

关于uitableview - allowsMultipleSelection 在 Swift 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27560628/

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