mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-15 11:01:21 +08:00
30 lines
1.2 KiB
TypeScript
30 lines
1.2 KiB
TypeScript
import * as transition from "tns-core-modules/ui/transition";
|
|
|
|
export class CustomTransition extends transition.Transition {
|
|
constructor(duration: number, curve: any) {
|
|
super(duration, curve);
|
|
}
|
|
|
|
public animateIOSTransition(containerView: UIView, fromView: UIView, toView: UIView, operation: UINavigationControllerOperation, completion: (finished: boolean) => void): void {
|
|
toView.transform = CGAffineTransformMakeScale(0, 0);
|
|
fromView.transform = CGAffineTransformIdentity;
|
|
|
|
switch (operation) {
|
|
case UINavigationControllerOperation.Push:
|
|
containerView.insertSubviewAboveSubview(toView, fromView);
|
|
break;
|
|
case UINavigationControllerOperation.Pop:
|
|
containerView.insertSubviewBelowSubview(toView, fromView);
|
|
break;
|
|
}
|
|
|
|
var duration = this.getDuration();
|
|
var curve = this.getCurve();
|
|
UIView.animateWithDurationAnimationsCompletion(duration, () => {
|
|
UIView.setAnimationCurve(curve);
|
|
toView.transform = CGAffineTransformIdentity;
|
|
fromView.transform = CGAffineTransformMakeScale(0, 0);
|
|
}, completion);
|
|
}
|
|
}
|