Swift - UITableView didSelectRowAtIndexPath & didDeselectRowAtIndexPath Add & Remove indexPath IDs

后端 未结 2 1753
春和景丽
春和景丽 2020-12-29 13:57

This is the code:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    let selectedItem = items.objectAtIndex(indexPa         


        
2条回答
  •  温柔的废话
    2020-12-29 14:28

    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)
            }
        }
    }
    

提交回复
热议问题