Swift - UITableView didSelectRowAtIndexPath& didDeselectRowAtIndexPath Add&删除indexPath ID [英] Swift - UITableView didSelectRowAtIndexPath & didDeselectRowAtIndexPath Add & Remove indexPath IDs
问题描述
这是代码:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let selectedItem = items.objectAtIndex(indexPath.row) as String
let itemId = selectedItem.componentsSeparatedByString("$%^")
//itemId[1] - Item Id
}
func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
let selectedItem = items.objectAtIndex(indexPath.row) as String
let itemId = selectedItem.componentsSeparatedByString("$%^")
//itemId[1] - Item Id
}
如何添加项目ID在数组或字符串或其他东西......?例如,当您选择行0,1,4,5时,您在数组或字符串中添加了不同的项目ID,然后当我想取消选择它们时,如何取消选择取消选择的indexPath.row中的确切项目ID并查找它在数组或字符串或其他东西......并删除它?
对不起我的英语,如果你有问题在评论中提问我会解释我是否可以
How to add Item Id "in Array or in String or something else..."? When you select rows 0,1,4,5 for example you have different Item Ids added "in Array or in String" and then when I want to deselect them how to deselect exact Item Id from the indexPath.row that is deselected and find it "in Array or in String or something else..." and deleted it ? Sorry for my broken english if you have a questions ask in comments and I will explain if I can
推荐答案
你可以通过向表视图控制器添加 Dictionary
属性来实现这一点:
You could do this pretty simply by adding a Dictionary
property to your table view controller:
class ViewController : UITableViewController {
var selectedItems: [String: Bool] = [:]
// ...
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let selectedItem = items.objectAtIndex(indexPath.row) as String
let itemId = selectedItem.componentsSeparatedByString("$%^")
// add to self.selectedItems
selectedItems[itemId[1]] = true
}
func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
let selectedItem = items.objectAtIndex(indexPath.row) as String
let itemId = selectedItem.componentsSeparatedByString("$%^")
// remove from self.selectedItems
selectedItems[itemId[1]] = nil
}
// can access the items as self.selectedItems.keys
func doSomething() {
for item in selectedItems.keys {
println(item)
}
}
}
这篇关于Swift - UITableView didSelectRowAtIndexPath& didDeselectRowAtIndexPath Add&删除indexPath ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!