测试测试 | ✗ |
语言语言 | SwiftSwift |
许可协议 | MIT |
发布最后发布 | 2017年1月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Joel Bell 维护。
FlipTheBlinds是一种动画过渡,它创建了一个百叶窗多米诺效应。
pod "FlipTheBlinds"
transitioningDelegate
属性赋给展示视图控制器。UIViewControllerTransitioningDelegate
的方法。FTBAnimationController(displayType:direction:speed:)
返回用于展示和消失的 FTBAnimationController
动画对象实例。 // MARK: Programmatic option
func presentAction() {
let toViewController = ToViewController()
toViewController.transitioningDelegate = self
self.present(toViewController, animated: true, completion: nil)
}
// MARK: Segue option
func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "segue", let destinationViewController = segue.destination as? toViewController {
destinationViewController.transitioningDelegate = self
}
}
// MARK: Transitioning Delegate
extension fromViewController: UIViewControllerTransitioningDelegate {
func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
return FTBAnimationController(displayType: .present, direction: .up, speed: .moderate)
}
func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
return FTBAnimationController(displayType: .dismiss, direction: .down, speed: .moderate)
}
}
delegate
属性分配给根视图控制器。UINavigationControllerDelegate
以及所需的过渡方法。FTBAnimationController(displayType:direction:speed:)
返回 FTBAnimationController
动画对象实例用于推送和弹出。 // MARK: Push
func pushAction() {
let navStackViewController = NavStackViewController()
self.navigationController?.delegate = self
self.navigationController?.pushViewController(navStackViewController, animated: true)
}
// MARK: Navigation Controller Delegate
extension NavRootViewController: UINavigationControllerDelegate {
func navigationController(_ navigationController: UINavigationController, animationControllerFor operation: UINavigationControllerOperation, from fromVC: UIViewController, to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
switch operation {
case .pop:
return FTBAnimationController(displayType: .pop, direction: .right, speed: .moderate)
case .push:
return FTBAnimationController(displayType: .push, direction: .left, speed: .moderate)
default:
return nil
}
}
}
delegate
属性分配给标签栏控制器的其中一个根视图控制器。UITabBarControllerDelegate
和所需的过渡方法。FTBAnimationController(displayType:direction:speed:)
返回 FTBAnimationController
动画对象实例。 // MARK: Delegate
override func viewDidLoad() {
super.viewDidLoad()
self.tabBarController?.delegate = self
}
// MARK: Tab Bar Controller Delegate
extension TabBarRootOneViewController: UITabBarControllerDelegate {
func tabBarController(_ tabBarController: UITabBarController, animationControllerForTransitionFrom fromVC: UIViewController, to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
return FTBAnimationController(displayType: .tabSelected, direction: .down, speed: .moderate)
}
}
drawHierarchy(in:afterScreenUpdates:)
用于模态显示,可能会引起不明显的不闪动。