15

jestem zainteresowany w uzyskaniu przejście między widokiem kontrolerów bardzo podobny do przejścia w iOS aplikacji Evernote za:Expand/zwinąć UITableViewCell osiągnąć Evernote-jak Transition

enter image description here

kiedy "Places" jest na podsłuchu, płynnie rozwija się w coś, co wygląda jak UINavigationController z zieloną obwódką wokół niego. Aby zwinąć, mogę albo dotknąć "Wstecz", albo przesunąć z lewej strony ekranu, aby stopniowo przejść do ekranu głównego.

Nie szukam dokładnych próbek kodu do skopiowania i wklejenia, a raczej wskazówek na wysokim poziomie, na których koncepcjach i interfejsach Apple API można wykorzystać. Bardziej konkretnie,

  • Które z tych przejść/animacji API ma to prawdopodobnie zastosowanie?
  • Jak mogę uzyskać zielone obramowanie wokół całego kontrolera widoku po rozwinięciu "Miejsca"?
+0

Czy znalazłeś sposób na wdrożenie sposobu, w jaki Evernote robi to w swojej aplikacji? –

Odpowiedz

1

Podejście do rozważenia: można użyć UICollectionView z dwoma różnymi układami. Nierozwinięty układ może być po prostu UICollectionViewFlowLayout, a rozwinięty układ może być podklasą, która zmniejsza/znika wszystkie komórki poza tym, które chcesz rozwinąć. Następnie możesz użyć przełącznika setCollectionViewLayout:animated:, aby przełączać się między nimi.

Zielona ramka byłaby tylko tłem widoku rodzica, ponieważ nie wymagałaby ona UINavigationController.

Jeśli chcesz wykonać gest przesunięcia interakcyjnego, aby powrócić z rozwiniętego układu, podłączysz UIScreenEdgePanGestureRecognizer do interaktywnej animacji układu kolekcji kolekcji (zobacz startInteractiveTransitionToCollectionViewLayout:completion:).

1

Sądząc po tej granicy wokół miejsc na pełnym ekranie, powiedziałbym, że to nie jest jeden widok kontrolerów z niestandardowym przejściem między nimi.

ten został wprowadzony z iOS7 i można znaleźć kilka tutoriali online, aby realizować wszelkie niestandardowe przejścia:

http://www.objc.io/issue-12/custom-container-view-controller-transitions.html

https://developer.apple.com/library/IOs/documentation/UIKit/Reference/UIViewControllerTransitioningDelegate_protocol/index.html

2

myślę, że korzysta z niestandardowego przejścia dla powiększyć efekt. Można to osiągnąć, korzystając z tej architektury zewnętrznej: https://github.com/mluisbrown/LCZoomTransition jako wzorca, ponieważ docelowy kontroler widoku wygląda jak modalny, a nie docelowy kontroler widoku.