2016-03-20 11 views
0

Ich habe eine benutzerdefinierte UITableViewCell, die ich als Fußzeile für UITableView verwende.ändern Sie dynamisch die Fußzeile von uititaview

func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { 
    let cell = tableView.dequeueReusableCellWithIdentifier("footerCommentCell") as! FooterCommentTableViewCell 
    cell.footerIndex = section 
    cell.delegate = self 
    return cell 
} 

Diese Fußzeile hat automatisches Layout wie http://joxi.ru/DrloGbpC4Eb3vA 1 - view 1 2 - view 2 3 - Ansicht 2 Höhenbeschränkung (view2Height)

Bei init Phase view2Height 0, und für einige Aktionen I Ich möchte diese Constraint-Konstante auf einen anderen Wert ändern, z. B. - 50, und den Header ändern.

Gibt es eine Möglichkeit, dies zu implementieren?

Antwort

0

Sie können heightForFooterInSection überschreiben und 0 oder 50 basierend auf dem Anforderungs- und Reload-Tabellenabschnitt zurückgeben.

override func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { 

     //return value based on condition 
    } 
+0

Ich kann keinen Zugriff auf meine Fußzeile Zelle in dieser Methode erhalten, so kann ich nicht Einschränkung Ändern gesamte Höhe ändert das Ergebnis nicht geben ich will, weil ich Auto-Layout verwenden –

0

Dies ist sehr einfach. Wenn Sie dynamisch sagen, bedeutet das, dass Sie eine Bedingung brauchen, um es zu ändern. Für Beispiel: Unterklasse zwei UITableviewCells und dann nur die Tabellenansicht neu laden.

0

Hinzufügen zu @ 2ank3th Antwort, können Sie die Zelle/Ansicht der Fußzeile erhalten.

func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { 
    let footerView = tableView.footerViewForSection(0) as! FooterCommentTableViewCell 
// Your section number. (0 for understanding purpose) 

// Then you can modify the height constraint and return the height of footer here. 

} 
0
func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat 
{ 
    return UITableViewAutomaticDimension 
} 

func tableView(tableView: UITableView, estimatedHeightForFooterInSection section: Int) -> CGFloat 
{ 
    return 44.0 
} 
Verwandte Themen