diff --git a/Supporting Files/Info.plist b/Supporting Files/Info.plist
index 12bd5e1..b892276 100644
--- a/Supporting Files/Info.plist
+++ b/Supporting Files/Info.plist
@@ -19,7 +19,7 @@
-
-
- animate(withGIFNamed:loopCount:)
+
+
+ animate(withGIFNamed:loopCount:completionHandler:)
Extension method
@@ -358,7 +358,7 @@
Swift
-public func animate(withGIFNamed imageName: String, loopCount: Int = 0)
+ public func animate(withGIFNamed imageName: String, loopCount: Int = 0, completionHandler: (() -> Void)? = nil)
+ completionHandler
+
+ Completion callback function
+
-
-
- animate(withGIFData:loopCount:)
+
+
+ animate(withGIFData:loopCount:completionHandler:)
Extension method
@@ -419,7 +431,7 @@
Swift
-public func animate(withGIFData imageData: Data, loopCount: Int = 0)
+ public func animate(withGIFData imageData: Data, loopCount: Int = 0, completionHandler: (() -> Void)? = nil)
+ completionHandler
+
+ Completion callback function
+
-
-
- animate(withGIFURL:loopCount:)
+
+
+ animate(withGIFURL:loopCount:completionHandler:)
Extension method
@@ -480,7 +504,7 @@
Swift
-public func animate(withGIFURL imageURL: URL, loopCount: Int = 0)
+ public func animate(withGIFURL imageURL: URL, loopCount: Int = 0, completionHandler: (() -> Void)? = nil)
+ completionHandler
+
+ Completion callback function
+
-
-
- animate(withGIFNamed:loopCount:)
+
+
+ animate(withGIFNamed:loopCount:completionHandler:)
Extension method
@@ -358,7 +358,7 @@
Swift
-public func animate(withGIFNamed imageName: String, loopCount: Int = 0)
+ public func animate(withGIFNamed imageName: String, loopCount: Int = 0, completionHandler: (() -> Void)? = nil)
+ completionHandler
+
+ Completion callback function
+
-
-
- animate(withGIFData:loopCount:)
+
+
+ animate(withGIFData:loopCount:completionHandler:)
Extension method
@@ -419,7 +431,7 @@
Swift
-public func animate(withGIFData imageData: Data, loopCount: Int = 0)
+ public func animate(withGIFData imageData: Data, loopCount: Int = 0, completionHandler: (() -> Void)? = nil)
+ completionHandler
+
+ Completion callback function
+
-
-
- animate(withGIFURL:loopCount:)
+
+
+ animate(withGIFURL:loopCount:completionHandler:)
Extension method
@@ -480,7 +504,7 @@
Swift
-public func animate(withGIFURL imageURL: URL, loopCount: Int = 0)
+ public func animate(withGIFURL imageURL: URL, loopCount: Int = 0, completionHandler: (() -> Void)? = nil)
+ completionHandler
+
+ Completion callback function
+Gifu adds protocol-based, performance-aware animated GIF support to UIKit. (It’s also a prefecture in Japan).
- -⚠ The master
branch works with Xcode 9 and iOS 11, which are both in beta. Use v2.0
for the stable version.
The simplest way to get started is initializing a GIFAnimatable
class in code or in a storyboard, then calling animate(:)
on it.
let imageView = GIFImageView(frame: CGRect(x: 0, y: 0, width: 200, height: 100))
-imageView.animate(withGIFNamed: "mugen")
+imageView.animate(withGIFNamed: "mugen") {
+ print("It's animating!")
+}
You can also prepare for the animation when the view loads and only start animating after a user interaction.
@@ -176,7 +176,9 @@ containing 10 frames, Gifu will load the current frame (red), buffer the next tw override func viewDidLoad() { super.viewDidLoad() - imageView.prepareForAnimation(withGIFNamed: "mugen") + imageView.prepareForAnimation(withGIFNamed: "mugen") { + print("Ready to animate!") + } } @IBAction func toggleAnimation(_ sender: AnyObject) { @@ -204,8 +206,8 @@ containing 10 frames, Gifu will load the current frame (red), buffer the next twUsed for displaying the animation frames.
","parent_name":"ImageContainer"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatableP8animatorAA8AnimatorCSgv":{"name":"animator","abstract":"Responsible for managing the animation frames.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatableP5layerSo7CALayerCv":{"name":"layer","abstract":"Notifies the instance that it needs display.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatableP5frameSC6CGRectVv":{"name":"frame","abstract":"View frame used for resizing the frames.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatableP11contentModeSC013UIViewContentD0Ov":{"name":"contentMode","abstract":"Content mode used for resizing the frames.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePA2aBRzAA14ImageContainerRzlE20intrinsicContentSizeSC6CGSizeVv":{"name":"intrinsicContentSize","abstract":"Returns the intrinsic content size based on the size of the image.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE15gifLoopDurationSdv":{"name":"gifLoopDuration","abstract":"Total duration of one animation loop
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE11activeFrameSo7UIImageCSgv":{"name":"activeFrame","abstract":"Returns the active frame if available.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE10frameCountSiv":{"name":"frameCount","abstract":"Total frame count of the GIF.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE14isAnimatingGIFSbv":{"name":"isAnimatingGIF","abstract":"Introspect whether the instance is animating.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE7animateySS12withGIFNamed_Si9loopCounttF":{"name":"animate(withGIFNamed:loopCount:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE7animatey10Foundation4DataV11withGIFData_Si9loopCounttF":{"name":"animate(withGIFData:loopCount:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE7animatey10Foundation3URLV10withGIFURL_Si9loopCounttF":{"name":"animate(withGIFURL:loopCount:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE19prepareForAnimationySS12withGIFNamed_Si9loopCountyycSg17completionHandlertF":{"name":"prepareForAnimation(withGIFNamed:loopCount:completionHandler:)","abstract":"Prepares the animator instance for animation.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE19prepareForAnimationy10Foundation4DataV11withGIFData_Si9loopCountyycSg17completionHandlertF":{"name":"prepareForAnimation(withGIFData:loopCount:completionHandler:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE19prepareForAnimationy10Foundation3URLV10withGIFURL_Si9loopCountyycSg17completionHandlertF":{"name":"prepareForAnimation(withGIFURL:loopCount:completionHandler:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE15prepareForReuseyyF":{"name":"prepareForReuse()","abstract":"Stop animating and free up GIF data from memory.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE17startAnimatingGIFyyF":{"name":"startAnimatingGIF()","abstract":"Start animating GIF.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE16stopAnimatingGIFyyF":{"name":"stopAnimatingGIF()","abstract":"Stop animating GIF.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE21setShouldResizeFramesySbF":{"name":"setShouldResizeFrames(_:)","abstract":"Whether the frame images should be resized or not. The default is false
, which means that the frame images retain their original size.
Sets the number of frames that should be buffered. Default is 50. A high number will result in more memory usage and less CPU load, and vice versa.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE19updateImageIfNeededyyF":{"name":"updateImageIfNeeded()","abstract":"Updates the image with a new frame if necessary.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html":{"name":"GIFAnimatable","abstract":"The protocol that view classes need to conform to to enable animated GIF support.
"},"Protocols/ImageContainer.html":{"name":"ImageContainer","abstract":"A single-property protocol that animatable classes can optionally conform to.
"},"Classes/Animator.html#/s:4Gifu8AnimatorCAcA13GIFAnimatable_p12withDelegate_tcfc":{"name":"init(withDelegate:)","abstract":"Creates a new animator with a delegate.
","parent_name":"Animator"},"Classes/GIFImageView.html#/s:4Gifu12GIFImageViewC8animatorAA8AnimatorCSgv":{"name":"animator","abstract":"A lazy animator.
","parent_name":"GIFImageView"},"Classes/GIFImageView.html#/c:@M@Gifu@objc(cs)GIFImageView(im)displayLayer:":{"name":"display(_:)","abstract":"Layer delegate method called periodically by the layer. Should not be called manually.
","parent_name":"GIFImageView"},"Classes/GIFImageView.html":{"name":"GIFImageView","abstract":"Example class that conforms to GIFAnimatable
. Uses default values for the animator frame buffer count and resize behavior. You can either use it directly in your code or use it as a blueprint for your own subclass.
Responsible for parsing GIF data and decoding the individual frames.
"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally.
"},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally.
"}} \ No newline at end of file +{"Protocols/ImageContainer.html#/s:4Gifu14ImageContainerP5imageSo7UIImageCSgv":{"name":"image","abstract":"Used for displaying the animation frames.
","parent_name":"ImageContainer"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatableP8animatorAA8AnimatorCSgv":{"name":"animator","abstract":"Responsible for managing the animation frames.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatableP5layerSo7CALayerCv":{"name":"layer","abstract":"Notifies the instance that it needs display.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatableP5frameSC6CGRectVv":{"name":"frame","abstract":"View frame used for resizing the frames.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatableP11contentModeSC013UIViewContentD0Ov":{"name":"contentMode","abstract":"Content mode used for resizing the frames.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePA2aBRzAA14ImageContainerRzlE20intrinsicContentSizeSC6CGSizeVv":{"name":"intrinsicContentSize","abstract":"Returns the intrinsic content size based on the size of the image.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE15gifLoopDurationSdv":{"name":"gifLoopDuration","abstract":"Total duration of one animation loop
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE11activeFrameSo7UIImageCSgv":{"name":"activeFrame","abstract":"Returns the active frame if available.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE10frameCountSiv":{"name":"frameCount","abstract":"Total frame count of the GIF.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE14isAnimatingGIFSbv":{"name":"isAnimatingGIF","abstract":"Introspect whether the instance is animating.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE7animateySS12withGIFNamed_Si9loopCountyycSg17completionHandlertF":{"name":"animate(withGIFNamed:loopCount:completionHandler:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE7animatey10Foundation4DataV11withGIFData_Si9loopCountyycSg17completionHandlertF":{"name":"animate(withGIFData:loopCount:completionHandler:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE7animatey10Foundation3URLV10withGIFURL_Si9loopCountyycSg17completionHandlertF":{"name":"animate(withGIFURL:loopCount:completionHandler:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE19prepareForAnimationySS12withGIFNamed_Si9loopCountyycSg17completionHandlertF":{"name":"prepareForAnimation(withGIFNamed:loopCount:completionHandler:)","abstract":"Prepares the animator instance for animation.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE19prepareForAnimationy10Foundation4DataV11withGIFData_Si9loopCountyycSg17completionHandlertF":{"name":"prepareForAnimation(withGIFData:loopCount:completionHandler:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE19prepareForAnimationy10Foundation3URLV10withGIFURL_Si9loopCountyycSg17completionHandlertF":{"name":"prepareForAnimation(withGIFURL:loopCount:completionHandler:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE15prepareForReuseyyF":{"name":"prepareForReuse()","abstract":"Stop animating and free up GIF data from memory.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE17startAnimatingGIFyyF":{"name":"startAnimatingGIF()","abstract":"Start animating GIF.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE16stopAnimatingGIFyyF":{"name":"stopAnimatingGIF()","abstract":"Stop animating GIF.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE21setShouldResizeFramesySbF":{"name":"setShouldResizeFrames(_:)","abstract":"Whether the frame images should be resized or not. The default is false
, which means that the frame images retain their original size.
Sets the number of frames that should be buffered. Default is 50. A high number will result in more memory usage and less CPU load, and vice versa.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE19updateImageIfNeededyyF":{"name":"updateImageIfNeeded()","abstract":"Updates the image with a new frame if necessary.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html":{"name":"GIFAnimatable","abstract":"The protocol that view classes need to conform to to enable animated GIF support.
"},"Protocols/ImageContainer.html":{"name":"ImageContainer","abstract":"A single-property protocol that animatable classes can optionally conform to.
"},"Classes/Animator.html#/s:4Gifu8AnimatorCAcA13GIFAnimatable_p12withDelegate_tcfc":{"name":"init(withDelegate:)","abstract":"Creates a new animator with a delegate.
","parent_name":"Animator"},"Classes/GIFImageView.html#/s:4Gifu12GIFImageViewC8animatorAA8AnimatorCSgv":{"name":"animator","abstract":"A lazy animator.
","parent_name":"GIFImageView"},"Classes/GIFImageView.html#/c:@M@Gifu@objc(cs)GIFImageView(im)displayLayer:":{"name":"display(_:)","abstract":"Layer delegate method called periodically by the layer. Should not be called manually.
","parent_name":"GIFImageView"},"Classes/GIFImageView.html":{"name":"GIFImageView","abstract":"Example class that conforms to GIFAnimatable
. Uses default values for the animator frame buffer count and resize behavior. You can either use it directly in your code or use it as a blueprint for your own subclass.
Responsible for parsing GIF data and decoding the individual frames.
"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally.
"},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally.
"}} \ No newline at end of file diff --git a/docs/docsets/Gifu.docset/Contents/Resources/docSet.dsidx b/docs/docsets/Gifu.docset/Contents/Resources/docSet.dsidx index 87f765a..d13afb4 100644 Binary files a/docs/docsets/Gifu.docset/Contents/Resources/docSet.dsidx and b/docs/docsets/Gifu.docset/Contents/Resources/docSet.dsidx differ diff --git a/docs/docsets/Gifu.tgz b/docs/docsets/Gifu.tgz index 3e962f7..cb7c55f 100644 Binary files a/docs/docsets/Gifu.tgz and b/docs/docsets/Gifu.tgz differ diff --git a/docs/docsets/Gifu.xml b/docs/docsets/Gifu.xml index ad51bd4..56c2eef 100644 --- a/docs/docsets/Gifu.xml +++ b/docs/docsets/Gifu.xml @@ -1 +1 @@ -Gifu adds protocol-based, performance-aware animated GIF support to UIKit. (It’s also a prefecture in Japan).
- -⚠ The master
branch works with Xcode 9 and iOS 11, which are both in beta. Use v2.0
for the stable version.
The simplest way to get started is initializing a GIFAnimatable
class in code or in a storyboard, then calling animate(:)
on it.
let imageView = GIFImageView(frame: CGRect(x: 0, y: 0, width: 200, height: 100))
-imageView.animate(withGIFNamed: "mugen")
+imageView.animate(withGIFNamed: "mugen") {
+ print("It's animating!")
+}
You can also prepare for the animation when the view loads and only start animating after a user interaction.
@@ -176,7 +176,9 @@ containing 10 frames, Gifu will load the current frame (red), buffer the next tw override func viewDidLoad() { super.viewDidLoad() - imageView.prepareForAnimation(withGIFNamed: "mugen") + imageView.prepareForAnimation(withGIFNamed: "mugen") { + print("Ready to animate!") + } } @IBAction func toggleAnimation(_ sender: AnyObject) { @@ -204,8 +206,8 @@ containing 10 frames, Gifu will load the current frame (red), buffer the next twUsed for displaying the animation frames.
","parent_name":"ImageContainer"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatableP8animatorAA8AnimatorCSgv":{"name":"animator","abstract":"Responsible for managing the animation frames.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatableP5layerSo7CALayerCv":{"name":"layer","abstract":"Notifies the instance that it needs display.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatableP5frameSC6CGRectVv":{"name":"frame","abstract":"View frame used for resizing the frames.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatableP11contentModeSC013UIViewContentD0Ov":{"name":"contentMode","abstract":"Content mode used for resizing the frames.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePA2aBRzAA14ImageContainerRzlE20intrinsicContentSizeSC6CGSizeVv":{"name":"intrinsicContentSize","abstract":"Returns the intrinsic content size based on the size of the image.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE15gifLoopDurationSdv":{"name":"gifLoopDuration","abstract":"Total duration of one animation loop
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE11activeFrameSo7UIImageCSgv":{"name":"activeFrame","abstract":"Returns the active frame if available.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE10frameCountSiv":{"name":"frameCount","abstract":"Total frame count of the GIF.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE14isAnimatingGIFSbv":{"name":"isAnimatingGIF","abstract":"Introspect whether the instance is animating.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE7animateySS12withGIFNamed_Si9loopCounttF":{"name":"animate(withGIFNamed:loopCount:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE7animatey10Foundation4DataV11withGIFData_Si9loopCounttF":{"name":"animate(withGIFData:loopCount:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE7animatey10Foundation3URLV10withGIFURL_Si9loopCounttF":{"name":"animate(withGIFURL:loopCount:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE19prepareForAnimationySS12withGIFNamed_Si9loopCountyycSg17completionHandlertF":{"name":"prepareForAnimation(withGIFNamed:loopCount:completionHandler:)","abstract":"Prepares the animator instance for animation.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE19prepareForAnimationy10Foundation4DataV11withGIFData_Si9loopCountyycSg17completionHandlertF":{"name":"prepareForAnimation(withGIFData:loopCount:completionHandler:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE19prepareForAnimationy10Foundation3URLV10withGIFURL_Si9loopCountyycSg17completionHandlertF":{"name":"prepareForAnimation(withGIFURL:loopCount:completionHandler:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE15prepareForReuseyyF":{"name":"prepareForReuse()","abstract":"Stop animating and free up GIF data from memory.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE17startAnimatingGIFyyF":{"name":"startAnimatingGIF()","abstract":"Start animating GIF.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE16stopAnimatingGIFyyF":{"name":"stopAnimatingGIF()","abstract":"Stop animating GIF.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE21setShouldResizeFramesySbF":{"name":"setShouldResizeFrames(_:)","abstract":"Whether the frame images should be resized or not. The default is false
, which means that the frame images retain their original size.
Sets the number of frames that should be buffered. Default is 50. A high number will result in more memory usage and less CPU load, and vice versa.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE19updateImageIfNeededyyF":{"name":"updateImageIfNeeded()","abstract":"Updates the image with a new frame if necessary.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html":{"name":"GIFAnimatable","abstract":"The protocol that view classes need to conform to to enable animated GIF support.
"},"Protocols/ImageContainer.html":{"name":"ImageContainer","abstract":"A single-property protocol that animatable classes can optionally conform to.
"},"Classes/Animator.html#/s:4Gifu8AnimatorCAcA13GIFAnimatable_p12withDelegate_tcfc":{"name":"init(withDelegate:)","abstract":"Creates a new animator with a delegate.
","parent_name":"Animator"},"Classes/GIFImageView.html#/s:4Gifu12GIFImageViewC8animatorAA8AnimatorCSgv":{"name":"animator","abstract":"A lazy animator.
","parent_name":"GIFImageView"},"Classes/GIFImageView.html#/c:@M@Gifu@objc(cs)GIFImageView(im)displayLayer:":{"name":"display(_:)","abstract":"Layer delegate method called periodically by the layer. Should not be called manually.
","parent_name":"GIFImageView"},"Classes/GIFImageView.html":{"name":"GIFImageView","abstract":"Example class that conforms to GIFAnimatable
. Uses default values for the animator frame buffer count and resize behavior. You can either use it directly in your code or use it as a blueprint for your own subclass.
Responsible for parsing GIF data and decoding the individual frames.
"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally.
"},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally.
"}} \ No newline at end of file +{"Protocols/ImageContainer.html#/s:4Gifu14ImageContainerP5imageSo7UIImageCSgv":{"name":"image","abstract":"Used for displaying the animation frames.
","parent_name":"ImageContainer"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatableP8animatorAA8AnimatorCSgv":{"name":"animator","abstract":"Responsible for managing the animation frames.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatableP5layerSo7CALayerCv":{"name":"layer","abstract":"Notifies the instance that it needs display.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatableP5frameSC6CGRectVv":{"name":"frame","abstract":"View frame used for resizing the frames.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatableP11contentModeSC013UIViewContentD0Ov":{"name":"contentMode","abstract":"Content mode used for resizing the frames.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePA2aBRzAA14ImageContainerRzlE20intrinsicContentSizeSC6CGSizeVv":{"name":"intrinsicContentSize","abstract":"Returns the intrinsic content size based on the size of the image.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE15gifLoopDurationSdv":{"name":"gifLoopDuration","abstract":"Total duration of one animation loop
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE11activeFrameSo7UIImageCSgv":{"name":"activeFrame","abstract":"Returns the active frame if available.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE10frameCountSiv":{"name":"frameCount","abstract":"Total frame count of the GIF.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE14isAnimatingGIFSbv":{"name":"isAnimatingGIF","abstract":"Introspect whether the instance is animating.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE7animateySS12withGIFNamed_Si9loopCountyycSg17completionHandlertF":{"name":"animate(withGIFNamed:loopCount:completionHandler:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE7animatey10Foundation4DataV11withGIFData_Si9loopCountyycSg17completionHandlertF":{"name":"animate(withGIFData:loopCount:completionHandler:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE7animatey10Foundation3URLV10withGIFURL_Si9loopCountyycSg17completionHandlertF":{"name":"animate(withGIFURL:loopCount:completionHandler:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE19prepareForAnimationySS12withGIFNamed_Si9loopCountyycSg17completionHandlertF":{"name":"prepareForAnimation(withGIFNamed:loopCount:completionHandler:)","abstract":"Prepares the animator instance for animation.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE19prepareForAnimationy10Foundation4DataV11withGIFData_Si9loopCountyycSg17completionHandlertF":{"name":"prepareForAnimation(withGIFData:loopCount:completionHandler:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE19prepareForAnimationy10Foundation3URLV10withGIFURL_Si9loopCountyycSg17completionHandlertF":{"name":"prepareForAnimation(withGIFURL:loopCount:completionHandler:)","abstract":"Prepare for animation and start animating immediately.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE15prepareForReuseyyF":{"name":"prepareForReuse()","abstract":"Stop animating and free up GIF data from memory.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE17startAnimatingGIFyyF":{"name":"startAnimatingGIF()","abstract":"Start animating GIF.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE16stopAnimatingGIFyyF":{"name":"stopAnimatingGIF()","abstract":"Stop animating GIF.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE21setShouldResizeFramesySbF":{"name":"setShouldResizeFrames(_:)","abstract":"Whether the frame images should be resized or not. The default is false
, which means that the frame images retain their original size.
Sets the number of frames that should be buffered. Default is 50. A high number will result in more memory usage and less CPU load, and vice versa.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE19updateImageIfNeededyyF":{"name":"updateImageIfNeeded()","abstract":"Updates the image with a new frame if necessary.
","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html":{"name":"GIFAnimatable","abstract":"The protocol that view classes need to conform to to enable animated GIF support.
"},"Protocols/ImageContainer.html":{"name":"ImageContainer","abstract":"A single-property protocol that animatable classes can optionally conform to.
"},"Classes/Animator.html#/s:4Gifu8AnimatorCAcA13GIFAnimatable_p12withDelegate_tcfc":{"name":"init(withDelegate:)","abstract":"Creates a new animator with a delegate.
","parent_name":"Animator"},"Classes/GIFImageView.html#/s:4Gifu12GIFImageViewC8animatorAA8AnimatorCSgv":{"name":"animator","abstract":"A lazy animator.
","parent_name":"GIFImageView"},"Classes/GIFImageView.html#/c:@M@Gifu@objc(cs)GIFImageView(im)displayLayer:":{"name":"display(_:)","abstract":"Layer delegate method called periodically by the layer. Should not be called manually.
","parent_name":"GIFImageView"},"Classes/GIFImageView.html":{"name":"GIFImageView","abstract":"Example class that conforms to GIFAnimatable
. Uses default values for the animator frame buffer count and resize behavior. You can either use it directly in your code or use it as a blueprint for your own subclass.
Responsible for parsing GIF data and decoding the individual frames.
"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally.
"},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally.
"}} \ No newline at end of file