在Swift中一次选择多个表视图单元格

时间:2015-11-11 06:05:10

标签: swift pftableviewcell

我正在尝试创建添加好友列表,其中用户选择多个表格视图单元格,并为每个选择显示自定义检查。我最初使用的是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")

    }



}

我该如何解决这个问题?感谢

1 个答案:

答案 0 :(得分:1)

我不会为你编写代码,但这应该会帮助你:

要实现目标,您应该将数据与视图(单元格)分开。 使用数组(即friendList)存储您的朋友列表和每个列表的选定状态,并使用该数组填充您的tableView。

numberOfCellsForRow等于friendList.count

在didSelectRowAtIndexPath中,使用indexPath.row更改视图(单元格)的状态,并为数组中的相同索引设置状态

在cellForRowAtIndexpath中,使用indexPath.row从Array中检索单元格的初始状态应该是什么。