2016-11-24 18 views
0

Ich habe die Schaltfläche funktioniert ordnungsgemäß, ich kann einfach nicht herausfinden, wie Sie es durch Antippen deaktivieren. Ich bin mir nicht sicher, ob ich es von der Funktion addSomething (Absender: UIButton) referenzieren kann, wie ich auf den Sender.tag referenziere. Irgendeine Idee? Danke für jede Hilfe.Deaktivieren Sie die Tabellenansicht Zelle Schaltfläche beim Tippen in Swift

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let myCell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! ExploreCell 

    // Configure the cell... 
    myCell.configureCell(teams[indexPath.row]) 

    myCell.addSomethingButton.tag = indexPath.row 
    myCell.addSomethingButton.addTarget(self, action: #selector(self.addSomething), forControlEvents: .TouchUpInside) 

    myCell.addSomethingButton.enabled = true 

    //disable cell clicking 
    myCell.selectionStyle = UITableViewCellSelectionStyle.None 

    return myCell 
} 

Antwort

1

Was möchten Sie tun müssen, um alle angezapft Tasten in einem Array zu speichern, um zu überprüfen, ob die Schaltfläche dieses Tags (aktuelle indexPath.row) hat erschlossen:

class ViewController: UIViewController { 
    var tappedButtonsTags = [Int]() 

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     let myCell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! ExploreCell 

     // Configure the cell... 
     myCell.configureCell(teams[indexPath.row]) 

     myCell.addSomethingButton.tag = indexPath.row 

     // here is the check: 
     if tappedButtonsTags.contains(indexPath.row) { 
      myCell.addSomethingButton.enabled = false 
     } else { 
      myCell.addSomethingButton.addTarget(self, action: #selector(self.addSomething), forControlEvents: .TouchUpInside) 
      myCell.addSomethingButton.enabled = true 
     } 

     //disable cell clicking 
     myCell.selectionStyle = UITableViewCellSelectionStyle.None 

     return myCell 
    } 

    // I just Implemented this for demonstration purposes, you can merge this one with yours :) 
    func addSomething(button: UIButton) { 
     tappedButtonsTags.append(button.tag) 
     tableView.reloadData() 
     // ... 
    } 
} 

ich diese Hoffnung geholfen.

+0

Vielen Dank, dass Sie alles erledigt haben, aber nachdem Sie es eingefügt haben, scheint es nur dann zu funktionieren, wenn die Tabellenansicht nicht geladen wird, nachdem die Schaltfläche angeklickt wurde. – user3712837

+0

Es ist einfach, die Antwort wurde bearbeitet, indem "tableView.Data()" zum Ziel der Schaltflächen hinzugefügt wurde :) –

+0

Ahh, danke! Das hat super funktioniert! Ich durchlaufe auch ein Array vor der Überprüfung der Datenbank für alle bereits hinzugefügt und sie funktionierten gut zusammen. – user3712837

Verwandte Themen