Ich versuche, eine UIView über einem UITableView hinzuzufügen. Die Absicht ist, dass, wenn der Benutzer den Inhalt herunterzieht (wie es normalerweise bei einem Pull-to-Refresh der Fall wäre), anstelle des UITableView-Hintergrunds, der UIView über der Tabelle wachsen würde, um an der obersten UITableViewCell zu hängen, die nach unten rutscht . Wenn der Benutzer den anderen Weg scrollt (der Inhalt steigt), verschwindet die UIView, als wäre es nur die oberste UITableViewCell.Growing Header in UITableView als Benutzer zieht
Sie können diese Implementierung in Path (Pulldown-Timeline und Top-Profilbild erweitert, example at 0:15) und die neue Facebook-App Checkin (mit der Karte wächst über der Liste der Orte in der Nähe) sehen.
Nicht sicher der beste Weg, um darüber zu gehen. Ich denke, um einen ähnlichen Effekt zu erzielen, müsste man die UIView als erste Zelle haben. Aber this question hat mich ein bisschen besorgt über versucht, die Höhe der Zelle beim Scrollen Größe zu ändern. Theoretisch muss die Größenänderung nur geschehen, wenn sie heruntergezogen werden, nicht nach oben drücken, wenn es nur die oberste UITableViewCell ist.
Bearbeiten: Aktueller Code - mit Vorschlag aus Rummad Ich bin ein Hinzufügen eines Keepath-Beobachter auf der Tabellenansicht für ContentOffset und Größe der Zelle Höhe darauf basierend, aber es springt überall.
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
if (self.tableView == (UITableView*)object) {
if ([keyPath isEqualToString:@"contentOffset"]) {
CGPoint scrollLoc = self.tableView.contentOffset;
if (scrollLoc.y < 0) {
NSLog(@"offset:%@", NSStringFromCGPoint(scrollLoc));
headerSize = 100 - scrollLoc.y;
[self.tableView beginUpdates];
[self.tableView endUpdates];
}
}
}
}
Probieren Sie einen anderen Blick ins Innere des Kopf setzen und Stretching. Ich hatte das gleiche Sprungproblem, als ich versuchte, das Rect der Header-Ansicht zu ändern. – Stuart