2016-05-13 14 views
0

Sorry, ich kann das nirgendwo finden.Wie setze ich uitaviewviewcellselectionstyle.none auf statische Zellen?

Ich muss meinen Auswahlstil auf none setzen, damit die Zeilen nicht hervorgehoben werden, wenn ich darauf klicke. Außerdem brauche ich Zeilen, um auswählbar zu sein, da ich einige Zeilen habe, die expandieren und kollabieren müssen. Ich weiß, das Stück Code ist UITableViewCellSelectionStyle.None, aber ich habe keine Ahnung, wo ich es implementieren kann. Vielen Dank!

EDIT IN CODES

ADDED
 // MARK: - Table view data source 
override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
    // #warning Incomplete implementation, return the number of sections 
    return 1 
} 

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    // #warning Incomplete implementation, return the number of rows 
    return 7 
} 

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 

    // Set height for date picker 

    if indexPath.section == 0 && indexPath.row == 2 { 
     let height:CGFloat = datePicker.hidden ? 0.0 : 216.0 
     return height 

    } 

    return super.tableView(tableView, heightForRowAtIndexPath: indexPath) 
} 

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

    // Expanding and collapsing date picker 
    UITableViewCellSelectionStyle.None 

    let datePickerIndexPath = NSIndexPath(forRow: 1, inSection: 0) 
    if datePickerIndexPath == indexPath { 

     datePicker.hidden = !datePicker.hidden 

     UIView.animateWithDuration(0.3, animations: {() -> Void in 
      self.tableView.beginUpdates() 
      // apple bug fix - some TV lines hide after animation 
      self.tableView.deselectRowAtIndexPath(indexPath, animated: true) 
      self.tableView.endUpdates() 
     }) 
    } 
} 

Die Codes sind in erster Linie für die Datumsauswahl, die ich umgesetzt haben. Alles funktioniert gut, aber wenn Sie auf die Zelle klicken, wird die gesamte Zeile in der Standardauswahlfarbe hervorgehoben.

Antwort

1

Schwer zu wissen, wo Sie es am besten implementieren, ohne Ihren Code zu sehen, aber Sie können es definitiv in Ihre cellForRowAtIndexPath setzen, wenn Sie Ihre Zelle aus der Warteschlange nehmen/initialisieren. Rufen Sie einfach yourCell.selectionStyle = .None vor return yourCell

+0

aber meine Codes für Tabellenansicht Datenquelle ist praktisch praktisch leer, da ich statische Zellen verwende, gibt es wirklich nichts zu zeigen. kann auch 'cellForRowAtIndexPath' für statische Zellen verwendet werden? Ich habe versucht, aber der Fehler kam "Beenden App aufgrund der nicht abgefangenen Ausnahme 'NSInternalInconsistencyException', Grund: 'kann eine Zelle mit Kennung TransportExpenseCell0 nicht aus der Warteschlange entfernen - muss eine Feder oder eine Klasse für den Bezeichner registrieren oder eine Prototypzelle in einem Storyboard verbinden' " – Chris

+0

und ich habe eine statische Zelle mit der Kennung TransportExpenseCell0 – Chris

+0

nur in Codes – Chris

0
cell.selectionStyle = .None 

Wenn Sie den Code nach gleich (=) zu schreiben, drücken Sie einfach Punkt (.), so dass viele Arten von Funktionen wie this-

Pop-up wird enter image description here

Und für Ihre zweite Ausgabe nur etwas Wert in Array, um zu überprüfen, ob es richtig funktioniert oder nicht.

+0

' dequeueReusableCellWithIdentifier' kann mit statischen Zellen verwendet werden? Ich habe den Fehler "App beenden aufgrund der nicht abgefangenen Ausnahme 'NSInternalInconsistencyException' erhalten, Grund: 'kann eine Zelle mit der Kennung TransportExpenseCell0 nicht aus der Warteschlange entfernen - muss eine Nib oder eine Klasse für den Bezeichner registrieren oder eine Prototypzelle in einem Storyboard verbinden' – Chris

Verwandte Themen