9

这是代码:

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 并找到它“在数组或字符串或其他东西中......”并删除了它?如果您在评论中有问题,请原谅我的英语不好,如果可以的话,我会解释

4

2 回答 2

24

你可以很简单地通过向Dictionary你的表视图控制器添加一个属性来做到这一点:

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)
        }
    }
}
于 2014-11-04T18:02:32.413 回答
6

对于 Swift 3.0,使用

override  func tableView(_ tableView: UITableView, didSelectRowAt
 indexPath: IndexPath){
     //your code...  
}
于 2016-11-15T19:47:54.530 回答