@@ -12,6 +12,7 @@ import SDWebImage
12
12
#if os(iOS) || os(tvOS) || os(macOS)
13
13
14
14
/// A coordinator object used for `AnimatedImage`native view bridge for UIKit/AppKit/WatchKit.
15
+ @available ( iOS 13 . 0 , OSX 10 . 15 , tvOS 13 . 0 , watchOS 6 . 0 , * )
15
16
public final class AnimatedImageCoordinator : NSObject {
16
17
17
18
/// Any user-provided object for actual coordinator, such as delegate method, taget-action
@@ -22,6 +23,7 @@ public final class AnimatedImageCoordinator: NSObject {
22
23
}
23
24
24
25
/// Data Binding Object, only properties in this object can support changes from user with @State and refresh
26
+ @available ( iOS 13 . 0 , OSX 10 . 15 , tvOS 13 . 0 , watchOS 6 . 0 , * )
25
27
final class AnimatedImageModel : ObservableObject {
26
28
/// URL image
27
29
@Published var url : URL ?
@@ -36,6 +38,7 @@ final class AnimatedImageModel : ObservableObject {
36
38
}
37
39
38
40
/// Completion Handler Binding Object, supports dynamic @State changes
41
+ @available ( iOS 13 . 0 , OSX 10 . 15 , tvOS 13 . 0 , watchOS 6 . 0 , * )
39
42
final class AnimatedImageHandler : ObservableObject {
40
43
// Completion Handler
41
44
@Published var successBlock : ( ( PlatformImage , SDImageCacheType ) -> Void ) ?
@@ -47,6 +50,7 @@ final class AnimatedImageHandler: ObservableObject {
47
50
}
48
51
49
52
/// Layout Binding Object, supports dynamic @State changes
53
+ @available ( iOS 13 . 0 , OSX 10 . 15 , tvOS 13 . 0 , watchOS 6 . 0 , * )
50
54
final class AnimatedImageLayout : ObservableObject {
51
55
var contentMode : ContentMode ?
52
56
var aspectRatio : CGFloat ?
@@ -58,6 +62,7 @@ final class AnimatedImageLayout : ObservableObject {
58
62
}
59
63
60
64
/// Configuration Binding Object, supports dynamic @State changes
65
+ @available ( iOS 13 . 0 , OSX 10 . 15 , tvOS 13 . 0 , watchOS 6 . 0 , * )
61
66
final class AnimatedImageConfiguration : ObservableObject {
62
67
var incrementalLoad : Bool ?
63
68
var maxBufferSize : UInt ?
@@ -73,6 +78,7 @@ final class AnimatedImageConfiguration: ObservableObject {
73
78
}
74
79
75
80
/// A Image View type to load image from url, data or bundle. Supports animated and static image format.
81
+ @available ( iOS 13 . 0 , OSX 10 . 15 , tvOS 13 . 0 , watchOS 6 . 0 , * )
76
82
public struct AnimatedImage : PlatformViewRepresentable {
77
83
@ObservedObject var imageModel = AnimatedImageModel ( )
78
84
@ObservedObject var imageHandler = AnimatedImageHandler ( )
@@ -444,6 +450,7 @@ public struct AnimatedImage : PlatformViewRepresentable {
444
450
}
445
451
446
452
// Layout
453
+ @available ( iOS 13 . 0 , OSX 10 . 15 , tvOS 13 . 0 , watchOS 6 . 0 , * )
447
454
extension AnimatedImage {
448
455
449
456
/// Configurate this view's image with the specified cap insets and options.
@@ -483,6 +490,7 @@ extension AnimatedImage {
483
490
}
484
491
485
492
// Aspect Ratio
493
+ @available ( iOS 13 . 0 , OSX 10 . 15 , tvOS 13 . 0 , watchOS 6 . 0 , * )
486
494
extension AnimatedImage {
487
495
/// Constrains this view's dimensions to the specified aspect ratio.
488
496
/// - Parameters:
@@ -541,6 +549,7 @@ extension AnimatedImage {
541
549
}
542
550
543
551
// AnimatedImage Modifier
552
+ @available ( iOS 13 . 0 , OSX 10 . 15 , tvOS 13 . 0 , watchOS 6 . 0 , * )
544
553
extension AnimatedImage {
545
554
546
555
/// Total loop count for animated image rendering. Defaults to nil.
@@ -610,6 +619,7 @@ extension AnimatedImage {
610
619
}
611
620
612
621
// Completion Handler
622
+ @available ( iOS 13 . 0 , OSX 10 . 15 , tvOS 13 . 0 , watchOS 6 . 0 , * )
613
623
extension AnimatedImage {
614
624
615
625
/// Provide the action when image load fails.
@@ -641,6 +651,7 @@ extension AnimatedImage {
641
651
}
642
652
643
653
// View Coordinator Handler
654
+ @available ( iOS 13 . 0 , OSX 10 . 15 , tvOS 13 . 0 , watchOS 6 . 0 , * )
644
655
extension AnimatedImage {
645
656
646
657
/// Provide the action when view representable create the native view.
@@ -668,6 +679,7 @@ extension AnimatedImage {
668
679
}
669
680
670
681
// Web Image convenience
682
+ @available ( iOS 13 . 0 , OSX 10 . 15 , tvOS 13 . 0 , watchOS 6 . 0 , * )
671
683
extension AnimatedImage {
672
684
673
685
/// Associate a placeholder when loading image with url
@@ -695,6 +707,7 @@ extension AnimatedImage {
695
707
}
696
708
697
709
#if DEBUG
710
+ @available ( iOS 13 . 0 , OSX 10 . 15 , tvOS 13 . 0 , watchOS 6 . 0 , * )
698
711
struct AnimatedImage_Previews : PreviewProvider {
699
712
static var previews : some View {
700
713
Group {
0 commit comments