2012-09-25 15 views
5

Próbuję dodać UIView powyżej UITableView. Zamiar jest taki, że gdy użytkownik ściąga zawartość (jak zwykle w przypadku odciągania do odświeżenia), zamiast widoku UITableView, UIView nad tabelą powinien się urosnąć, aby utknąć w górnej części UITableViewCell, która przesuwa się w dół . Gdy użytkownik przewinie w drugą stronę (zawartość rośnie), UIView zniknie tak, jakby był tylko najwyższym UITableViewCell.Rosnące nagłówek w UITableView jako użytkownik ściąga

Możesz zobaczyć tę implementację w ścieżce (rozwinąć linię czasu i obraz profilu głównego rozszerza się, example at 0:15) i sprawdzić nowy app na Facebooku (z mapą rosnącą nad listą miejsc w pobliżu).

Nie jestem pewien, jak najlepiej to zrobić. Myślę, że aby osiągnąć podobny efekt, musisz mieć UIView jako pierwszą komórkę. Ale this question mnie martwi trochę próba zmiany rozmiaru komórki podczas przewijania. Teoretycznie zmiana rozmiaru musi nastąpić tylko wtedy, gdy będą się podnosić, a nie wypychać, jeśli to tylko najlepsza UITableViewCell.

Edit: Aktualny kod - stosując sugestię od rummad Dodaję obserwatora keypath na tableview dla contentOffset i rozmiaru wysokość komórki w oparciu o to, ale to skoki wszędzie.

-(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]; 
      } 
     } 
    } 
} 
+0

Spróbuj umieścić inny widok wewnątrz nagłówka i rozciąganie to. Miałem ten sam problem z przeskokiem, gdy próbowałem zmodyfikować rect widoku nagłówka. – Stuart

Odpowiedz

12

Wygląda na to, że jest tam kilka bibliotek, a korzystanie z pierwszej komórki tabeli nie jest rozwiązaniem. "Paralaksa" wydawała się magicznym terminem google.

http://rowboatrevolution.com/2012/02/uitableview-parallax-background-a-la-path/ https://github.com/Rheeseyb/RBParallaxTableViewController

+0

OP nie pyta o magiczny termin google "paralaksa", ale o rosnący nagłówek, który przywiera do góry i rośnie z tableView przeciąganiem (w dół) –

4

W swojej metodzie viewDidScroll: delegata śledzić contentOffset dla UITableView. Następnie można odpowiednio ustawić ramkę UIView.

+0

Czy chciałbyś wysłać tutaj przykładowy kod? –

Powiązane problemy