我正在尝试创建添加好友列表,其中用户选择多个表格视图单元格,并为每个选择显示自定义检查。我最初使用的是didSelectRowAtIndexPath
,但这并没有给我我想要的结果,因为你可以突出显示多个单元格,但除非你不突出显示原始选定的行,否则你不能再选择了。然后我尝试使用didHighlighRowAtIndexPath
,但这似乎不起作用,因为现在我的indexPath得到了一个nil值。这是我的代码:
override func tableView(tableView: UITableView, didHighlightRowAtIndexPath indexPath: NSIndexPath) {
let indexPath = tableView.indexPathForSelectedRow
let currentCell = tableView.cellForRowAtIndexPath(indexPath!) as! AddedYouCell
let currentUser = PFUser.currentUser()?.username
let username = currentCell.Username.text
print(currentCell.Username.text)
let Friends = PFObject(className: "Friends");
Friends.setObject(username!, forKey: "To");
Friends.setObject(currentUser!, forKey: "From");
Friends.saveInBackgroundWithBlock { (success: Bool,error: NSError?) -> Void in
print("Friend has been added.");
currentCell.Added.image = UIImage(named: "checked.png")
}
}
我该如何解决这个问题?感谢
答案 0 :(得分:1)
我不会为你编写代码,但这应该会帮助你:
要实现目标,您应该将数据与视图(单元格)分开。 使用数组(即friendList)存储您的朋友列表和每个列表的选定状态,并使用该数组填充您的tableView。
numberOfCellsForRow等于friendList.count
在didSelectRowAtIndexPath中,使用indexPath.row更改视图(单元格)的状态,并为数组中的相同索引设置状态
在cellForRowAtIndexpath中,使用indexPath.row从Array中检索单元格的初始状态应该是什么。