2014-07-09 13 views
8

Próbuję replikować to w tej chwili:Replication Google Search iOS Karty Animacja

enter image description here

Jeśli jesteś zaznajomiony z aplikacji Google, to wygląda jak UICollectionView z niestandardowy układ przepływu.

Rozwijam się na pytanie, które zostało zamknięte z dodatkowym kodem.

Here's the link to the other question.

W klasie niestandardowy układ przepływowy, mogę stworzyć „piętrowych” efekt ustawiając negatywną wartość minimalną odstępy między wierszami, i stosując następujący:

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect 
{ 
    NSArray *allAttributesInRect = [super layoutAttributesForElementsInRect:rect]; 

    CGPoint centerPoint = CGPointMake(CGRectGetMidX(self.collectionView.bounds), CGRectGetMidY(self.collectionView.bounds)); 

    for (UICollectionViewLayoutAttributes *cellAttributes in allAttributesInRect) 
    { 
     if (CGRectContainsPoint(cellAttributes.frame, centerPoint)) 
     { 
      cellAttributes.transform = CGAffineTransformIdentity; 
      cellAttributes.zIndex = 1.0; 
     } 
     else 
     { 
      cellAttributes.transform = CGAffineTransformMakeScale(0.75, 0.75); 
     } 
    } 

    return allAttributesInRect; 
} 

przesuwając usunąć animacje działają poprawnie, ale mam problem z utworzeniem "ułożonego" wyglądu, a następnie przeciągnięcie tylko 1 komórki do widoku, pozostawiając pozostałe karty ułożone w stos, jak to, co widać powyżej.

+0

hej. Próbuję powtórzyć ten sam efekt, ale bez większego powodzenia. Potrzebuję kart, aby stać się częścią UICollectionView/UITableView, aby użytkownik mógł przewijać więcej niż tylko niektóre karty, takie jak Google. Ale mogę was zapewnić, że sposób, w jaki google zbudował, nie jest związany z widokiem kolekcji. Sprawdziłem aplikację w Reveal i zasadniczo zrobili animację, korzystając tylko z widoków. niemniej jednak potrzebuję również colletionview i jedyny sposób, w jaki widzę, że to robione, to dwa układy, które można animować przejścia między. Zajmie to znacznie więcej czasu. – alex

+0

Film wideo lub gif efektu, którego szukasz, pomoże ci uzyskać odpowiedź. – Segev

Odpowiedz

0

Widzę dwie części tego widoku. 1. Stos "kart" & 2. Tabela stosów. Łamanie go w ten sposób znacznie ułatwia obsługę.

Powinno być całkiem prosto do podklasy UIView, aby utworzyć "kartę" (będę ją nazywać UICardView), którą można przeciągać. Stworzenie "stosu" tych elementów również nie powinno być zbyt trudne. Widzę, że najtrudniejszą częścią tego byłoby wydajne dodanie cienia.

Druga część zawiera wiele ruchomych części: dodanie tych stosów do stołu. Rzeczywiście, tabela służy do płynnego przewijania i spójnego odstępu, a w efekcie jest całkowicie przezroczysta. Musisz obliczyć wysokość dla każdego stosu "kart" dla heightForRowAtIndexPath:.

Takie podejście pozwala na płynne przewijanie, stosunkowo niewielki obszar pamięci oraz wysoki stopień dostosowania z względną łatwością. Dodatkowo te mniejsze elementy powinny być łatwe w utrzymaniu i dodawać funkcje.