How do I make an expand/contract transition between views on iOS?

前端 未结 2 1268
后悔当初
后悔当初 2021-01-29 19:48

I\'m trying to make a transition animation in iOS where a view or view controller appears to expand to fill the whole screen, then contract back to its former position when done

2条回答
  •  深忆病人
    2021-01-29 20:08

    After watching the Youtube iPad animation, I figured out that it's just an illusion. Let's say that there's a SearchViewController for the search results, and a DetailViewController for the video itself, and the additional info of the video.

    DetailViewController has a method like - (id)initWithFullscreen which starts the view controller using the full screen space with the video.

    So the sequence goes like this:

    1. SearchViewController presents its results.
    2. User clicks on a video.
    3. DetailViewController is created with initWithFullscreen, but not presented
    4. The "Zoom in" animation begins. (Notice that we are still on the SearchViewController, and this animation is just a simple View animation)
    5. The "Zoom in" animation ends, presents the DetailViewController with animated:NO (as Anomie mentioned).
    6. The DetailViewController is now presented, and using full space.

    It doesn't seem that the youtube app is doing anything fancier, the give-away was that the "Zoom in" animation zooms to a black square, before presenting the full video.

提交回复
热议问题