123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- #if os(macOS)
-
- import AppKit
- public enum ImageTransition {
- case none
- var duration: TimeInterval {
- return 0
- }
- }
- #elseif os(watchOS)
- import UIKit
- public enum ImageTransition {
- case none
- var duration: TimeInterval {
- return 0
- }
- }
- #else
- import UIKit
- public enum ImageTransition {
-
- case none
-
-
- case fade(TimeInterval)
-
- case flipFromLeft(TimeInterval)
-
- case flipFromRight(TimeInterval)
-
-
- case flipFromTop(TimeInterval)
-
-
- case flipFromBottom(TimeInterval)
-
-
- case custom(duration: TimeInterval,
- options: UIView.AnimationOptions,
- animations: ((UIImageView, UIImage) -> Void)?,
- completion: ((Bool) -> Void)?)
-
- var duration: TimeInterval {
- switch self {
- case .none: return 0
- case .fade(let duration): return duration
-
- case .flipFromLeft(let duration): return duration
- case .flipFromRight(let duration): return duration
- case .flipFromTop(let duration): return duration
- case .flipFromBottom(let duration): return duration
-
- case .custom(let duration, _, _, _): return duration
- }
- }
-
- var animationOptions: UIView.AnimationOptions {
- switch self {
- case .none: return []
- case .fade(_): return .transitionCrossDissolve
-
- case .flipFromLeft(_): return .transitionFlipFromLeft
- case .flipFromRight(_): return .transitionFlipFromRight
- case .flipFromTop(_): return .transitionFlipFromTop
- case .flipFromBottom(_): return .transitionFlipFromBottom
-
- case .custom(_, let options, _, _): return options
- }
- }
-
- var animations: ((UIImageView, UIImage) -> Void)? {
- switch self {
- case .custom(_, _, let animations, _): return animations
- default: return { $0.image = $1 }
- }
- }
-
- var completion: ((Bool) -> Void)? {
- switch self {
- case .custom(_, _, _, let completion): return completion
- default: return nil
- }
- }
- }
- #endif
|