2016-08-24 1 views
2

Ich bin daran gebunden, die Kopfhöhe meiner Tabellenansicht auf 0 zu animieren. Der aktuelle Code Ich verwende ist:Probleme beim Ändern der UITableView-Kopfzeile mit Animation

var newRect = headerView.frame 
    newRect.size.height = 0 
    UIView.animateWithDuration(0.6) { 
     self.headerView.frame = newRect 
    } 

headerView ist eine benutzerdefinierte UIView und verwendet wie folgt:

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 


     return headerView 

    } 

Wenn ich den Code ausführen scheint es, die headerView ‚s Höhe zu animieren, um nur die Hälfte seiner Größe und nicht 0. Irgendwelche Ideen, was ich hier falsch machen könnte? Alle Hinweise wären toll.

Antwort

1

Sie müssen nur heightForHeaderInSection und UITableView System neu laden. Unten, es gibt ein Beispiel dafür, wie es geht. Es ist ein Dummy-Beispiel (wenn eine Zelle gedrückt wird, erscheint die Abschnittsüberschrift (dis).

var displayExpandedHeader = true 
let expandedHeight = CGFloat(50) 
let colapsedHeight = CGFloat(0) 
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
    return headerView 
} 
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

    tableView.beginUpdates() 
    displayExpandedHeader = !displayExpandedHeader 
    tableView.reloadSections(NSIndexSet(index: indexPath.section), withRowAnimation: (!displayExpandedHeader) ? .Top : .Bottom) 
    tableView.endUpdates() 
} 
func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
    return (displayExpandedHeader) ? expandedHeight : colapsedHeight 
} 
+0

Das hat mir geholfen Danke für Ihre Antwort. – Kex

Verwandte Themen