Swift: проблемы с пользовательским UIView.transition?

Хорошо, я просмотрел https://developer.apple.com/videos/play/wwdc2013/218/ и SO так же пытается сделать пользовательские переходы с помощью контроллера панели вкладок и его контроллеров view, но Im запутался после выяснения основные шаги здесь.

Мне нужно знать, как (например, код примера будет очень полезен), чтобы вызвать пользовательский UIView.transition или просто иметь пользовательскую option в UIView.transition . Мне нужно использовать это, чтобы сделать сдвиг / модальный переход между вкладками в моем контроллере панели вкладок.

Единственный способ, которым я могу осуществить переход, – это использовать нижеприведенную функцию (это приводит к их растворению):

 func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool { if selectedViewController == nil || viewController == selectedViewController { return false } let fromView = selectedViewController!.view let toView = viewController.view UIView.transition(from: fromView!, to: toView!, duration: 0.3, options: [.transitionCrossDissolve], completion: nil) return true } 

И называя это вручную здесь, где я программно chnage *selectedIndex* для моего контроллера табуляции:

 //SWITCHES BUTTON ------------------------------------------- func switchTab(index: Int) { //transition self.tabBarController(self, shouldSelect: (viewControllers?[index])!) 

Я прочитал и попробовал создать пользовательский класс UIViewControllerAnimatedTransitioning но не знаю, как это поместится в программном порядке здесь –

мои попытки передать мой контроллер панели вкладок и toView и fromView в пользовательский класс приводят к тому, что ничего не происходит / анимируется. Вот почему я здесь прибегал к UIView.transition.

Как я могу создать пользовательский UIView.transition ? Что я могу сделать здесь?

Вы должны соответствовать UITabBarControllerDelegate и создать класс customTransition и передать его следующим образом:

  func tabBarController(_ tabBarController: UITabBarController, animationControllerForTransitionFrom fromVC: UIViewController, to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? { let animator = TabAnimationManager() return animator } 

И Class TabAnimationManager должен быть подклассом UIPercentDrivenInteractiveTransition и соответствовать протоколу UIViewControllerAnimatedTransitioning. Вы можете добавить свои собственные анимации в этот класс.

  • Пользовательский переход Viewcontroller не изменяет размер
  • Segues против UIViewControllerAnimatedTransitioning
  • UIViewControllerAnimatedTransitioning с MPMoviePlayerViewController
  • Одновременное отображение и скрытие с помощью переходаWithView
  • Переход на один вид UIView
  • Есть ли полный pagecurl? обновленный
  • Понимание значения переходов UIViewController
  • Переход UIViewWithView не работает
  • Подвижные объекты анимации UIView, а не анимация
  • Масштабирование дочернего UIViewController в полноэкранном режиме
  • UIViewController - проблема с пользовательским отключением перехода
  • Interesting Posts

    Как тестировать покупки приложений через Apple TestFlight?

    В Xcode 7 Swift не может автозаполнять код Objective-C

    В Objective-C действительно ли привязка метода происходит в «время выполнения»?

    Моя кнопка местоположения не отображается (Google maps SDK, ios)

    Описание возвращаемого места в API Google Places для iOS

    Панель вкладок в нижней части с MonoTouch.Dialog?

    Переопределение ячеек CollectionView iOS 11

    В каком формате находится эта строка?

    Уведомления уровня объекта Realm внутри UICollectionViewCell's

    Что такое быстрый способ преобразования строки из двух символов в массив логических элементов?

    Есть ли метод, называемый viewDidLayoutSubviews?

    Как я могу вызвать метод UIViewController из подкласса UIView

    Отображение динамического веб-контента с локального сервера iOS (т. Е. Использование браузера в качестве удаленного экрана)

    Подождите, пока методы async закончатся в цикле for

    Тысячи UITableViewCellSeperatorView в UITableView с пользовательской ячейкой

    Давайте будем гением компьютера.