import { Transition } from "./transition"; export class FadeTransition extends Transition { public animateIOSTransition(containerView: UIView, fromView: UIView, toView: UIView, operation: UINavigationControllerOperation, completion: (finished: boolean) => void): void { let originalToViewAlpha = toView.alpha; let originalFromViewAlpha = fromView.alpha; toView.alpha = 0.0; fromView.alpha = 1.0; switch (operation) { case UINavigationControllerOperation.Push: containerView.insertSubviewAboveSubview(toView, fromView); break; case UINavigationControllerOperation.Pop: containerView.insertSubviewBelowSubview(toView, fromView); break; } let duration = this.getDuration(); let curve = this.getCurve(); UIView.animateWithDurationAnimationsCompletion(duration, () => { UIView.setAnimationCurve(curve); toView.alpha = 1.0; fromView.alpha = 0.0; }, (finished: boolean) => { toView.alpha = originalToViewAlpha; fromView.alpha = originalFromViewAlpha; completion(finished); }); } }