Animieren Sie hinzufügen/entfernen UISearchBar zu/von UITableView tableViewHeader
Habe ich eine Unterklasse von UITableViewController. Ich habe code, der hinzufügen/entfernen ein UISearchBar zu/von den tableHeaderView meiner tableView. Hier der code, den ich habe, um diese Aufgaben auszuführen:
self.tableView.tableHeaderView = uiSearchBar; //Make the search bar appear
self.tableView.tableHeaderView = nil; //Make the search bar disappear
Das problem ist, dass ich will das hinzufügen/entfernen der UISearchBar animiert werden; gleiten in Ansicht von der Oberseite, wenn ich es dann schieben Sie nach oben und außer Sicht, wenn ich es entfernen, anstatt einfach erscheinen und verschwinden. Irgendwelche Vorschläge?
Dank.
InformationsquelleAutor Justin Kredible | 2009-08-23
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
War ich endlich in der Lage, um dies herauszufinden. Stellte sich heraus, ziemlich einfach. Anstelle der Zugabe der UISearchBar, um die Kopfzeile der Tabelle, füge ich es in die erste Zelle der Tabelle mit animation UITableViewRowAnimationTop und entfernen Sie es mit der gleichen Methode. Diese Ergebnisse in der bar ein-und Ausschieben von oben. Hier ist der code, der macht die bar erscheinen:
Und hier ist der code, der entfernt die Suchleiste:
Einen viel einfacheren Weg, dass ist auch geeignet für UITableViewStyleGrouped (plus erfordert keine Veränderung der Anzahl der Zeilen) zu animieren, die
contentInset
der Tabelle:Ich weiß, das ist drei Jahre nach der OP gefragt, aber da dies ist eine gute alternative, um den gewünschten Effekt erzielen, ich dachte, es könnte nützlich sein für andere treffen das gleiche problem.
tv.size.width
werdentv.frame.size.width
und vielleichttv.size.height
muss eine Reduktion auf, zum Beispiel f 44.0 oder einfach nur h.tv.tableHeaderView = uiSearchBar
es stellt automatischuiSearchBar.frame.origin.y = 0
, die animiert wie alle frame-Eigenschaften.Versuchen, mit Ihrer Tabelle anzeigen scroll—animiert, so dass nur die Zeile unterhalb der Suchleiste sichtbar ist, dann entfernen Sie die search-Leiste und navigieren Sie zu der gleichen Zeile ohne animation.