@@ -18,31 +18,76 @@ extension AnyTransition {
1818 return AnyTransition . asymmetric ( insertion: insertion, removal: removal)
1919 }
2020
21+ /// Fade-in transition with duration
22+ /// - Parameter duration: transition duration, use ease-in-out
23+ /// - Returns: A transition with duration
24+ public static func fade( duration: Double ) -> AnyTransition {
25+ let insertion = AnyTransition . opacity. animation ( . easeInOut( duration: duration) )
26+ let removal = AnyTransition . identity
27+ return AnyTransition . asymmetric ( insertion: insertion, removal: removal)
28+ }
29+
2130 /// Flip from left transition
2231 public static var flipFromLeft : AnyTransition {
2332 let insertion = AnyTransition . move ( edge: . leading)
2433 let removal = AnyTransition . identity
2534 return AnyTransition . asymmetric ( insertion: insertion, removal: removal)
2635 }
2736
37+ /// Flip from left transition with duration
38+ /// - Parameter duration: transition duration, use ease-in-out
39+ /// - Returns: A transition with duration
40+ public static func flipFromLeft( duration: Double ) -> AnyTransition {
41+ let insertion = AnyTransition . move ( edge: . leading) . animation ( . easeInOut( duration: duration) )
42+ let removal = AnyTransition . identity
43+ return AnyTransition . asymmetric ( insertion: insertion, removal: removal)
44+ }
45+
2846 /// Flip from right transition
2947 public static var flipFromRight : AnyTransition {
3048 let insertion = AnyTransition . move ( edge: . trailing)
3149 let removal = AnyTransition . identity
3250 return AnyTransition . asymmetric ( insertion: insertion, removal: removal)
3351 }
3452
53+ /// Flip from right transition with duration
54+ /// - Parameter duration: transition duration, use ease-in-out
55+ /// - Returns: A transition with duration
56+ public static func flipFromRight( duration: Double ) -> AnyTransition {
57+ let insertion = AnyTransition . move ( edge: . trailing) . animation ( . easeInOut( duration: duration) )
58+ let removal = AnyTransition . identity
59+ return AnyTransition . asymmetric ( insertion: insertion, removal: removal)
60+ }
61+
3562 /// Flip from top transition
3663 public static var flipFromTop : AnyTransition {
3764 let insertion = AnyTransition . move ( edge: . top)
3865 let removal = AnyTransition . identity
3966 return AnyTransition . asymmetric ( insertion: insertion, removal: removal)
4067 }
4168
69+ /// Flip from top transition with duration
70+ /// - Parameter duration: transition duration, use ease-in-out
71+ /// - Returns: A transition with duration
72+ public static func flipFromTop( duration: Double ) -> AnyTransition {
73+ let insertion = AnyTransition . move ( edge: . top) . animation ( . easeInOut( duration: duration) )
74+ let removal = AnyTransition . identity
75+ return AnyTransition . asymmetric ( insertion: insertion, removal: removal)
76+ }
77+
4278 /// Flip from bottom transition
4379 public static var flipFromBottom : AnyTransition {
4480 let insertion = AnyTransition . move ( edge: . bottom)
4581 let removal = AnyTransition . identity
4682 return AnyTransition . asymmetric ( insertion: insertion, removal: removal)
4783 }
84+
85+ /// Flip from bottom transition with duration
86+ /// - Parameter duration: transition duration, use ease-in-out
87+ /// - Returns: A transition with duration
88+ public static func flipFromBottom( duration: Double ) -> AnyTransition {
89+ let insertion = AnyTransition . move ( edge: . bottom) . animation ( . easeInOut( duration: duration) )
90+ let removal = AnyTransition . identity
91+ return AnyTransition . asymmetric ( insertion: insertion, removal: removal)
92+ }
4893}
0 commit comments