2016-07-25 26 views
0

Ich mache eine App, die verschiedene farbige Zellen verwendet, um Zellen in verschiedene Kategorien zu trennen, aber ich habe auch eine Funktion, die der Benutzer auf Zellen zum Hinzufügen von Häkchen und wählen Sie sie tippen können . Ich möchte, dass die farbigen Zellen deaktiviert werden, sodass der Benutzer beim Tippen nicht auf die Zelle ein Häkchen setzt und sie auswählt. das ist mein Haken Funktion:kann nicht Zelle basierend auf Hintergrundfarbe Swift deaktivieren

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
{ 
    let cellIdentifier = "instrumentTableCell" 
    let cell: InstrumentTableCell! = tableView.dequeueReusableCellWithIdentifier(identifier) as? InstrumentTableCell 

    checked = Array(count:recipies.count, repeatedValue:false) 
    cell.configurateTheCell(recipies[indexPath.row]) 

    if !checked[indexPath.row] { 
     cell.accessoryType = .None 
    } else if checked[indexPath.row] { 
     cell.accessoryType = .Checkmark 
    } 


    return cell 
} 
+1

Hilft 'cell.userInteractionEnabled'? – paulvs

+0

@paulvs yep das hat funktioniert Danke! – zach2161

+0

Ich habe es als Antwort hinzugefügt. – paulvs

Antwort

1

cell.userInteractionEnabled = false Versuchen.

0

Verwenden Sie die UITableViewDelegate Funktion

tableView:willDisplayCell:forRowAtIndexPath: 

Sie Zelle Funktionen wie Schrift- und Hintergrundfarbe dort zugreifen:

cell.backgroundColor 
cell.textLabel.backgroundColor 
cell.detailTextLabel.backgroundColor 

auf der Farbe basiert, können Sie dann aktivieren/deaktivieren Sie die Zelle zum Abgreifen mit

cell.userInteractionEnabled = false 

Bei Bedarf können Sie andere Teile von t aktivieren/deaktivieren Er zelle auch hier.