Commit 06ec8deb by Daniel Dahan

reworked MotionIndependentController

parent d21da35d
...@@ -29,19 +29,40 @@ ...@@ -29,19 +29,40 @@
import UIKit import UIKit
public class MotionIndependentController: MotionController { public class MotionIndependentController: MotionController {
/// An initializer.
public override init() { public override init() {
super.init() super.init()
} }
/**
Transitions source views to their corresponding destination view
within a given root view.
- Parameter rootView: A UIView.
- Parameter fromViews: An Array of UIViews.
- Parameter toViews: An Array of UIViews.
- Parameter completion: An optional callback.
*/
public func transition(rootView: UIView, fromViews: [UIView], toViews: [UIView], completion: ((Bool) -> Void)? = nil) { public func transition(rootView: UIView, fromViews: [UIView], toViews: [UIView], completion: ((Bool) -> Void)? = nil) {
transitionContainer = rootView transitionContainer = rootView
completionCallback = completion completionCallback = completion
prepareTransition() prepareTransition()
prepareContext(fromViews: fromViews, toViews: toViews)
prepareTransitionPairs()
animate()
}
}
fileprivate extension MotionIndependentController {
/**
Prepares the context.
- Parameter fromViews: An Array of UIViews.
- PArameter toViews: An Array of UIViews.
*/
func prepareContext(fromViews: [UIView], toViews: [UIView]) {
context.defaultCoordinateSpace = .sameParent context.defaultCoordinateSpace = .sameParent
context.set(fromViews: fromViews, toViews: toViews) context.set(fromViews: fromViews, toViews: toViews)
processContext() processContext()
prepareTransitionPairs()
animate()
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment