1

Я пытаюсь настроить анимацию перехода на навигационную систему push/pop на UINavigationController таким образом, чтобы имитировать представление/отклонение UIViewController.Pop UIViewController с пользовательской «отклонением модальной» подобной анимации

Вот пример стандартной анимации:

  • толчок к зеленому экрану,
  • присутствует модальный Оранжевый экран,
  • отклонять модальный Оранжевый экран и
  • поп назад на голубой экран.

enter image description here

я был в состоянии получить тот же «скользить вверх от нижней» толчок анимации реализации пользовательских вертикальной UIStoryboardSegue.

Жесткая часть предназначена для реализации аналогичной поп-анимации. Лучшее, что я смог получить следующий:

enter image description here

Вот медленный вариант движения одного и того же эффекта:

enter image description here

Из предыдущей анимации вы можете оценить, что он отличается от стандартного увольнением модального анимации главным образом потому, что экран Bubblegum не должен скользить сверху вниз, но должен быть уже представлен за экраном Navy во время население

Это код, который я использовал для создания поддельных отклонять модальную анимацию:

class FakeModalNavigationController: UINavigationController { 

    fileprivate static let unwindToBubblegumScreenSegueID = "unwindToBubblegumScreenSegueID" 

    override func unwind(for unwindSegue: UIStoryboardSegue, towardsViewController subsequentVC: UIViewController) { 
     if unwindSegue.identifier == type(of: self).unwindToBubblegumScreenSegueID { 
      popViewControllerAnimatedFromBottom(subsequentVC) 
     } 
    } 

    fileprivate func popViewControllerAnimatedFromBottom(_ viewControllerToPop: UIViewController) { 
     let transition = CATransition() 
     transition.duration = 0.25 
     transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) 
     transition.type = kCATransitionPush 
     transition.subtype = kCATransitionFromBottom 
     view.layer.add(transition, forKey: nil) 
     popViewController(animated: false) 
    } 
} 

Заранее спасибо за ответы и комментарии!

ответ

2

Попробуйте использовать:

transition.type = kCATransitionReveal 
transition.subtype = kCATransitionFromBottom 
+0

Спасибо, это гораздо лучше, чем раньше;) К сожалению, в то время как я выполняю поддельный уволить модальный экран ВМФ, есть еще темная тень эффект по экрану Bubblegum. Вы знаете, как его удалить? – horothesun

Смежные вопросы