在 Swift 中一次选择多个 Table 查看单元格

Selecting Multiple Table View Cells At Once in Swift

我正在尝试创建一个添加好友列表,其中用户 select 的多个 table 视图单元格和每个 selection 的自定义检查出现。我最初使用 didSelectRowAtIndexPath,但这并没有给我想要的结果,因为您可以突出显示多个单元格,但除非您取消突出显示原始的 selected 行,否则您不能再 select。然后我尝试使用 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")

    }



}

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

我不会为您编写代码,但这应该对您有所帮助:

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

numberOfCellsForRow 等于 friendList.count

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

在 cellForRowAtIndexpath 中,使用 indexPath.row 从数组中检索单元格的初始状态。