在 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 从数组中检索单元格的初始状态。
我正在尝试创建一个添加好友列表,其中用户 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 从数组中检索单元格的初始状态。