From c8fede3e8658f41d3d20c69fe6c048a5865d091d Mon Sep 17 00:00:00 2001 From: Reda Lemeden Date: Sun, 31 Dec 2017 20:08:19 +0100 Subject: [PATCH] Update docs --- docs/Classes.html | 10 +- docs/Classes/Animator.html | 10 +- docs/Classes/GIFImageView.html | 11 +- docs/Protocols.html | 10 +- docs/Protocols/GIFAnimatable.html | 338 ++++++++++++------ docs/Protocols/ImageContainer.html | 6 +- docs/badge.svg | 28 ++ docs/css/jazzy.css | 5 + .../Contents/Resources/Documents/Classes.html | 10 +- .../Resources/Documents/Classes/Animator.html | 10 +- .../Documents/Classes/GIFImageView.html | 11 +- .../Resources/Documents/Protocols.html | 10 +- .../Documents/Protocols/GIFAnimatable.html | 338 ++++++++++++------ .../Documents/Protocols/ImageContainer.html | 6 +- .../Resources/Documents/css/jazzy.css | 5 + .../Contents/Resources/Documents/index.html | 46 +-- .../Contents/Resources/Documents/js/jazzy.js | 6 + .../Contents/Resources/Documents/search.json | 1 + .../Resources/Documents/undocumented.json | 6 - .../Contents/Resources/docSet.dsidx | Bin 12288 -> 12288 bytes docs/docsets/Gifu.tgz | Bin 51585 -> 51829 bytes docs/index.html | 46 +-- docs/js/jazzy.js | 6 + docs/search.json | 1 + 24 files changed, 598 insertions(+), 322 deletions(-) create mode 100644 docs/badge.svg create mode 100644 docs/docsets/Gifu.docset/Contents/Resources/Documents/search.json delete mode 100644 docs/docsets/Gifu.docset/Contents/Resources/Documents/undocumented.json create mode 100644 docs/search.json diff --git a/docs/Classes.html b/docs/Classes.html index 1206469..9fd3472 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -65,9 +65,9 @@
  • - + - GIFImageView + GIFImageView
    @@ -97,9 +97,9 @@
  • - + - Animator + Animator
    @@ -128,7 +128,7 @@
    diff --git a/docs/Classes/Animator.html b/docs/Classes/Animator.html index 3732587..29d8731 100644 --- a/docs/Classes/Animator.html +++ b/docs/Classes/Animator.html @@ -72,9 +72,9 @@
  • - + - init(withDelegate:) + init(withDelegate:)
    @@ -105,8 +105,7 @@
    -

    A view object that implements the GIFAnimatable protocol.

    - +

    A view object that implements the GIFAnimatable protocol.

    @@ -116,7 +115,6 @@

    Return Value

    A new animator instance.

    -
    @@ -127,7 +125,7 @@ diff --git a/docs/Classes/GIFImageView.html b/docs/Classes/GIFImageView.html index 35aca70..b584c52 100644 --- a/docs/Classes/GIFImageView.html +++ b/docs/Classes/GIFImageView.html @@ -72,9 +72,9 @@
  • - + - animator + animator
    @@ -99,9 +99,9 @@
  • - + - display(_:) + display(_:)
    @@ -133,7 +133,6 @@

    The delegated layer.

    -
    @@ -149,7 +148,7 @@
    diff --git a/docs/Protocols.html b/docs/Protocols.html index 418373b..0a0c464 100644 --- a/docs/Protocols.html +++ b/docs/Protocols.html @@ -65,9 +65,9 @@
  • - + - GIFAnimatable + GIFAnimatable
    @@ -93,9 +93,9 @@
  • - + - ImageContainer + ImageContainer
    @@ -124,7 +124,7 @@
    diff --git a/docs/Protocols/GIFAnimatable.html b/docs/Protocols/GIFAnimatable.html index 29cda6e..46020a3 100644 --- a/docs/Protocols/GIFAnimatable.html +++ b/docs/Protocols/GIFAnimatable.html @@ -72,9 +72,9 @@
  • - + - animator + animator
    @@ -99,9 +99,9 @@
  • - + - layer + layer
    @@ -126,9 +126,9 @@
  • - + - frame + frame
    @@ -153,9 +153,9 @@
  • - + - contentMode + contentMode
    @@ -184,9 +184,9 @@
  • - + - intrinsicContentSize + intrinsicContentSize Extension method @@ -218,9 +218,9 @@
  • - + - gifLoopDuration + gifLoopDuration Extension method @@ -248,9 +248,9 @@
  • - + - activeFrame + activeFrame Extension method @@ -278,9 +278,9 @@
  • - + - frameCount + frameCount Extension method @@ -308,9 +308,9 @@
  • - + - isAnimatingGIF + isAnimatingGIF Extension method @@ -338,9 +338,9 @@
  • - + - animate(withGIFNamed:loopCount:) + animate(withGIFNamed:loopCount:) Extension method @@ -375,7 +375,6 @@

    The file name of the GIF in the main bundle.

    -
    @@ -388,7 +387,6 @@

    Desired number of loops, <= 0 for infinite loop.

    -
    @@ -401,9 +399,9 @@
  • - + - animate(withGIFData:loopCount:) + animate(withGIFData:loopCount:) Extension method @@ -438,7 +436,6 @@

    GIF image data.

    -
    @@ -451,7 +448,6 @@

    Desired number of loops, <= 0 for infinite loop.

    -
    @@ -464,72 +460,9 @@
  • - - - prepareForAnimation(withGIFNamed:loopCount:completionHandler:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Prepares the animator instance for animation.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func prepareForAnimation(withGIFNamed imageName: String, loopCount: Int = 0, completionHandler: ((Void) -> Void)? = .none)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - imageName - - -
    -

    The file name of the GIF in the main bundle.

    - -
    -
    - - loopCount - - -
    -

    Desired number of loops, <= 0 for infinite loop.

    - -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - prepareForAnimation(withGIFData:loopCount:completionHandler:) + + + animate(withGIFURL:loopCount:) Extension method @@ -547,7 +480,133 @@

    Declaration

    Swift

    -
    public func prepareForAnimation(withGIFData imageData: Data, loopCount: Int = 0, completionHandler: ((Void) -> Void)? = .none)
    +
    public func animate(withGIFURL imageURL: URL, loopCount: Int = 0)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + imageURL + + +
    +

    GIF image url.

    +
    +
    + + loopCount + + +
    +

    Desired number of loops, <= 0 for infinite loop.

    +
    +
    +
    + + +
  • +
  • +
    + + + + prepareForAnimation(withGIFNamed:loopCount:completionHandler:) + + + Extension method + +
    +
    +
    +
    +
    +
    +

    Prepares the animator instance for animation.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func prepareForAnimation(withGIFNamed imageName: String,
    +                                loopCount: Int = 0,
    +                                completionHandler: (() -> Void)? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + imageName + + +
    +

    The file name of the GIF in the main bundle.

    +
    +
    + + loopCount + + +
    +

    Desired number of loops, <= 0 for infinite loop.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + prepareForAnimation(withGIFData:loopCount:completionHandler:) + + + Extension method + +
    +
    +
    +
    +
    +
    +

    Prepare for animation and start animating immediately.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func prepareForAnimation(withGIFData imageData: Data,
    +                                loopCount: Int = 0,
    +                                completionHandler: (() -> Void)? = nil)
    @@ -564,7 +623,6 @@

    GIF image data.

    -
    @@ -577,7 +635,6 @@

    Desired number of loops, <= 0 for infinite loop.

    -
    @@ -590,9 +647,72 @@
  • +
    +
    +
    +
    +
    +

    Prepare for animation and start animating immediately.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func prepareForAnimation(withGIFURL imageURL: URL,
    +                                loopCount: Int = 0,
    +                                completionHandler: (() -> Void)? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + imageURL + + +
    +

    GIF image url.

    +
    +
    + + loopCount + + +
    +

    Desired number of loops, <= 0 for infinite loop.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + - prepareForReuse() + prepareForReuse() Extension method @@ -620,9 +740,9 @@
  • - + - startAnimatingGIF() + startAnimatingGIF() Extension method @@ -650,9 +770,9 @@
  • - + - stopAnimatingGIF() + stopAnimatingGIF() Extension method @@ -680,9 +800,9 @@
  • - + - setShouldResizeFrames(_:) + setShouldResizeFrames(_:) Extension method @@ -717,7 +837,6 @@

    Boolean value indicating whether individual frames should be resized.

    -
    @@ -730,9 +849,9 @@
  • - + - setFrameBufferCount(_:) + setFrameBufferCount(_:) Extension method @@ -767,7 +886,6 @@

    The number of frames to buffer.

    -
    @@ -780,9 +898,9 @@
  • - + - updateImageIfNeeded() + updateImageIfNeeded() Extension method @@ -813,7 +931,7 @@
  • diff --git a/docs/Protocols/ImageContainer.html b/docs/Protocols/ImageContainer.html index d61d2ea..3ec3143 100644 --- a/docs/Protocols/ImageContainer.html +++ b/docs/Protocols/ImageContainer.html @@ -72,9 +72,9 @@
  • - + - image + image
    @@ -102,7 +102,7 @@
    diff --git a/docs/badge.svg b/docs/badge.svg new file mode 100644 index 0000000..a096fec --- /dev/null +++ b/docs/badge.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + documentation + + + documentation + + + 100% + + + 100% + + + diff --git a/docs/css/jazzy.css b/docs/css/jazzy.css index d6d65b7..d628282 100644 --- a/docs/css/jazzy.css +++ b/docs/css/jazzy.css @@ -164,6 +164,11 @@ header { padding-top: 10px; } .main-content section .task-group-section .task-group:first-of-type .section-name { padding-top: 15px; } + .main-content section .heading:before { + content: ""; + display: block; + padding-top: 70px; + margin: -70px 0 0; } .section { padding: 0 25px; } diff --git a/docs/docsets/Gifu.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/Gifu.docset/Contents/Resources/Documents/Classes.html index 1206469..9fd3472 100644 --- a/docs/docsets/Gifu.docset/Contents/Resources/Documents/Classes.html +++ b/docs/docsets/Gifu.docset/Contents/Resources/Documents/Classes.html @@ -65,9 +65,9 @@
  • - + - GIFImageView + GIFImageView
    @@ -97,9 +97,9 @@
  • - + - Animator + Animator
    @@ -128,7 +128,7 @@
    diff --git a/docs/docsets/Gifu.docset/Contents/Resources/Documents/Classes/Animator.html b/docs/docsets/Gifu.docset/Contents/Resources/Documents/Classes/Animator.html index 3732587..29d8731 100644 --- a/docs/docsets/Gifu.docset/Contents/Resources/Documents/Classes/Animator.html +++ b/docs/docsets/Gifu.docset/Contents/Resources/Documents/Classes/Animator.html @@ -72,9 +72,9 @@
  • - + - init(withDelegate:) + init(withDelegate:)
    @@ -105,8 +105,7 @@
    -

    A view object that implements the GIFAnimatable protocol.

    - +

    A view object that implements the GIFAnimatable protocol.

    @@ -116,7 +115,6 @@

    Return Value

    A new animator instance.

    -
    @@ -127,7 +125,7 @@ diff --git a/docs/docsets/Gifu.docset/Contents/Resources/Documents/Classes/GIFImageView.html b/docs/docsets/Gifu.docset/Contents/Resources/Documents/Classes/GIFImageView.html index 35aca70..b584c52 100644 --- a/docs/docsets/Gifu.docset/Contents/Resources/Documents/Classes/GIFImageView.html +++ b/docs/docsets/Gifu.docset/Contents/Resources/Documents/Classes/GIFImageView.html @@ -72,9 +72,9 @@
  • - + - animator + animator
    @@ -99,9 +99,9 @@
  • - + - display(_:) + display(_:)
    @@ -133,7 +133,6 @@

    The delegated layer.

    -
    @@ -149,7 +148,7 @@
    diff --git a/docs/docsets/Gifu.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/Gifu.docset/Contents/Resources/Documents/Protocols.html index 418373b..0a0c464 100644 --- a/docs/docsets/Gifu.docset/Contents/Resources/Documents/Protocols.html +++ b/docs/docsets/Gifu.docset/Contents/Resources/Documents/Protocols.html @@ -65,9 +65,9 @@
  • - + - GIFAnimatable + GIFAnimatable
    @@ -93,9 +93,9 @@
  • - + - ImageContainer + ImageContainer
    @@ -124,7 +124,7 @@
    diff --git a/docs/docsets/Gifu.docset/Contents/Resources/Documents/Protocols/GIFAnimatable.html b/docs/docsets/Gifu.docset/Contents/Resources/Documents/Protocols/GIFAnimatable.html index 29cda6e..46020a3 100644 --- a/docs/docsets/Gifu.docset/Contents/Resources/Documents/Protocols/GIFAnimatable.html +++ b/docs/docsets/Gifu.docset/Contents/Resources/Documents/Protocols/GIFAnimatable.html @@ -72,9 +72,9 @@
  • - + - animator + animator
    @@ -99,9 +99,9 @@
  • - + - layer + layer
    @@ -126,9 +126,9 @@
  • - + - frame + frame
    @@ -153,9 +153,9 @@
  • - + - contentMode + contentMode
    @@ -184,9 +184,9 @@
  • - + - intrinsicContentSize + intrinsicContentSize Extension method @@ -218,9 +218,9 @@
  • - + - gifLoopDuration + gifLoopDuration Extension method @@ -248,9 +248,9 @@
  • - + - activeFrame + activeFrame Extension method @@ -278,9 +278,9 @@
  • - + - frameCount + frameCount Extension method @@ -308,9 +308,9 @@
  • - + - isAnimatingGIF + isAnimatingGIF Extension method @@ -338,9 +338,9 @@
  • - + - animate(withGIFNamed:loopCount:) + animate(withGIFNamed:loopCount:) Extension method @@ -375,7 +375,6 @@

    The file name of the GIF in the main bundle.

    -
    @@ -388,7 +387,6 @@

    Desired number of loops, <= 0 for infinite loop.

    -
    @@ -401,9 +399,9 @@
  • - + - animate(withGIFData:loopCount:) + animate(withGIFData:loopCount:) Extension method @@ -438,7 +436,6 @@

    GIF image data.

    -
    @@ -451,7 +448,6 @@

    Desired number of loops, <= 0 for infinite loop.

    -
    @@ -464,72 +460,9 @@
  • - - - prepareForAnimation(withGIFNamed:loopCount:completionHandler:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Prepares the animator instance for animation.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func prepareForAnimation(withGIFNamed imageName: String, loopCount: Int = 0, completionHandler: ((Void) -> Void)? = .none)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - imageName - - -
    -

    The file name of the GIF in the main bundle.

    - -
    -
    - - loopCount - - -
    -

    Desired number of loops, <= 0 for infinite loop.

    - -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - prepareForAnimation(withGIFData:loopCount:completionHandler:) + + + animate(withGIFURL:loopCount:) Extension method @@ -547,7 +480,133 @@

    Declaration

    Swift

    -
    public func prepareForAnimation(withGIFData imageData: Data, loopCount: Int = 0, completionHandler: ((Void) -> Void)? = .none)
    +
    public func animate(withGIFURL imageURL: URL, loopCount: Int = 0)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + imageURL + + +
    +

    GIF image url.

    +
    +
    + + loopCount + + +
    +

    Desired number of loops, <= 0 for infinite loop.

    +
    +
    +
    + + +
  • +
  • +
    + + + + prepareForAnimation(withGIFNamed:loopCount:completionHandler:) + + + Extension method + +
    +
    +
    +
    +
    +
    +

    Prepares the animator instance for animation.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func prepareForAnimation(withGIFNamed imageName: String,
    +                                loopCount: Int = 0,
    +                                completionHandler: (() -> Void)? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + imageName + + +
    +

    The file name of the GIF in the main bundle.

    +
    +
    + + loopCount + + +
    +

    Desired number of loops, <= 0 for infinite loop.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + prepareForAnimation(withGIFData:loopCount:completionHandler:) + + + Extension method + +
    +
    +
    +
    +
    +
    +

    Prepare for animation and start animating immediately.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func prepareForAnimation(withGIFData imageData: Data,
    +                                loopCount: Int = 0,
    +                                completionHandler: (() -> Void)? = nil)
    @@ -564,7 +623,6 @@

    GIF image data.

    -
    @@ -577,7 +635,6 @@

    Desired number of loops, <= 0 for infinite loop.

    -
    @@ -590,9 +647,72 @@
  • +
    +
    +
    +
    +
    +

    Prepare for animation and start animating immediately.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func prepareForAnimation(withGIFURL imageURL: URL,
    +                                loopCount: Int = 0,
    +                                completionHandler: (() -> Void)? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + imageURL + + +
    +

    GIF image url.

    +
    +
    + + loopCount + + +
    +

    Desired number of loops, <= 0 for infinite loop.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + - prepareForReuse() + prepareForReuse() Extension method @@ -620,9 +740,9 @@
  • - + - startAnimatingGIF() + startAnimatingGIF() Extension method @@ -650,9 +770,9 @@
  • - + - stopAnimatingGIF() + stopAnimatingGIF() Extension method @@ -680,9 +800,9 @@
  • - + - setShouldResizeFrames(_:) + setShouldResizeFrames(_:) Extension method @@ -717,7 +837,6 @@

    Boolean value indicating whether individual frames should be resized.

    -
    @@ -730,9 +849,9 @@
  • - + - setFrameBufferCount(_:) + setFrameBufferCount(_:) Extension method @@ -767,7 +886,6 @@

    The number of frames to buffer.

    -
    @@ -780,9 +898,9 @@
  • - + - updateImageIfNeeded() + updateImageIfNeeded() Extension method @@ -813,7 +931,7 @@
  • diff --git a/docs/docsets/Gifu.docset/Contents/Resources/Documents/Protocols/ImageContainer.html b/docs/docsets/Gifu.docset/Contents/Resources/Documents/Protocols/ImageContainer.html index d61d2ea..3ec3143 100644 --- a/docs/docsets/Gifu.docset/Contents/Resources/Documents/Protocols/ImageContainer.html +++ b/docs/docsets/Gifu.docset/Contents/Resources/Documents/Protocols/ImageContainer.html @@ -72,9 +72,9 @@
  • - + - image + image
    @@ -102,7 +102,7 @@
    diff --git a/docs/docsets/Gifu.docset/Contents/Resources/Documents/css/jazzy.css b/docs/docsets/Gifu.docset/Contents/Resources/Documents/css/jazzy.css index d6d65b7..d628282 100644 --- a/docs/docsets/Gifu.docset/Contents/Resources/Documents/css/jazzy.css +++ b/docs/docsets/Gifu.docset/Contents/Resources/Documents/css/jazzy.css @@ -164,6 +164,11 @@ header { padding-top: 10px; } .main-content section .task-group-section .task-group:first-of-type .section-name { padding-top: 15px; } + .main-content section .heading:before { + content: ""; + display: block; + padding-top: 70px; + margin: -70px 0 0; } .section { padding: 0 25px; } diff --git a/docs/docsets/Gifu.docset/Contents/Resources/Documents/index.html b/docs/docsets/Gifu.docset/Contents/Resources/Documents/index.html index 43590aa..527df1b 100644 --- a/docs/docsets/Gifu.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/Gifu.docset/Contents/Resources/Documents/index.html @@ -56,15 +56,15 @@
    -

    Logo

    +

    Logo

    -

    GitHub release Bitrise Carthage compatible Join the chat at https://gitter.im/kaishin/gifu Swift 3.0.x platforms

    +

    GitHub release Bitrise Carthage compatible Join the chat at https://gitter.im/kaishin/gifu Swift 3.0.x platforms

    Gifu adds protocol-based, performance-aware animated GIF support to UIKit. (It’s also a prefecture in Japan).

    -

    Swift 2.3 support is on the swift2.3 branch which will not be getting any future updates.

    -

    Install

    -

    Carthage

    +

    ⚠ The master branch works with Xcode 9 and iOS 11, which are both in beta. Use v2.0 for the stable version.

    +

    Install

    +

    Carthage

    • Add the following to your Cartfile: github "kaishin/Gifu"
    • @@ -72,34 +72,34 @@
    • Follow the current instructions in Carthage’s README for up to date installation instructions.
    -

    CocoaPods

    +

    CocoaPods

    • Add the following to your Podfile: pod 'Gifu'
    • You will also need to make sure you’re opting into using frameworks: use_frameworks!
    • Then run pod install with CocoaPods 0.36 or newer.
    -

    How It Works

    +

    How It Works

    -

    Gifu does not require using the built-in GIFImageView subclass. The Animator class does the heavy-lifting, while the GIFAnimatable protocol exposes the functionality to the view classes that conform to it, using protocol extensions.

    +

    Gifu does not require using the built-in GIFImageView subclass. The Animator class does the heavy-lifting, while the GIFAnimatable protocol exposes the functionality to the view classes that conform to it, using protocol extensions.

    -

    The Animator has a FrameStore that only keeps a limited number of frames in-memory, effectively creating a buffer for the animation without consuming all the available memory. This approach makes loading large GIFs a lot more resource-friendly.

    +

    The Animator has a FrameStore that only keeps a limited number of frames in-memory, effectively creating a buffer for the animation without consuming all the available memory. This approach makes loading large GIFs a lot more resource-friendly.

    The figure below summarizes how this works in practice. Given an image containing 10 frames, Gifu will load the current frame (red), buffer the next two frames in this example (orange), and empty up all the other frames to free up memory (gray):

    -

    -

    Usage

    +

    +

    Usage

    There are two options that should cover any situation:

      -
    • Use the built-in GIFImageView subclass if you don’t need to combine GIF support with another image library.
    • -
    • If you need more flexibility and composability, make your class conform to GIFAnimatable. In practice, any UIView subclass would do, since you get most of the required properties for free. For best results, make your UIImageView subclass conform to GIFAnimatable to get access to other features such as intrinsic content size.
    • +
    • Use the built-in GIFImageView subclass if you don’t need to combine GIF support with another image library.
    • +
    • If you need more flexibility and composability, make your class conform to GIFAnimatable. In practice, any UIView subclass would do, since you get most of the required properties for free. For best results, make your UIImageView subclass conform to GIFAnimatable to get access to other features such as intrinsic content size.
    -

    GIFAnimatable

    +

    GIFAnimatable

    -

    The bread and butter of Gifu. Through protocol extensions, GIFAnimatable exposes all the APIs of the library, and with very little boilerplate, any class can conform to it.

    +

    The bread and butter of Gifu. Through protocol extensions, GIFAnimatable exposes all the APIs of the library, and with very little boilerplate, any class can conform to it.

    class MyImageView: UIImageView, GIFAnimatable {
       public lazy var animator: Animator? = {
         return Animator(withDelegate: self)
    @@ -164,9 +164,9 @@ containing 10 frames, Gifu will load the current frame (red), buffer the next tw
       }
     }
     
    -

    Examples

    +

    Examples

    -

    The simplest way to get started is initializing a GIFAnimatable class in code or in a storyboard, then calling animate(:) on it.

    +

    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")
     
    @@ -188,26 +188,26 @@ containing 10 frames, Gifu will load the current frame (red), buffer the next tw } -

    If you are using a GIFAnimatable class in a table or collection view, you can call the prepareForReuse() method in your cell subclass:

    +

    If you are using a GIFAnimatable class in a table or collection view, you can call the prepareForReuse() method in your cell subclass:

    override func prepareForReuse() {
       super.prepareForReuse()
       imageView.prepareForReuse()
     }
     
    -

    Demo App

    +

    Demo App

    Clone or download the repository and open Gifu.xcworkspace to check out the demo app.

    -

    Documentation

    +

    Documentation

    See the full API documentation.

    -

    Compatibility

    +

    Compatibility

    • iOS 9.0+
    • Swift 3.0
    • Xcode 8.0
    -

    License

    +

    License

    See LICENSE.

    @@ -215,7 +215,7 @@ containing 10 frames, Gifu will load the current frame (red), buffer the next tw
    diff --git a/docs/docsets/Gifu.docset/Contents/Resources/Documents/js/jazzy.js b/docs/docsets/Gifu.docset/Contents/Resources/Documents/js/jazzy.js index 4ff9455..3965b5f 100755 --- a/docs/docsets/Gifu.docset/Contents/Resources/Documents/js/jazzy.js +++ b/docs/docsets/Gifu.docset/Contents/Resources/Documents/js/jazzy.js @@ -38,3 +38,9 @@ $(".token").click(function(event) { } event.preventDefault(); }); + +// Dumb down quotes within code blocks that delimit strings instead of quotations +// https://github.com/realm/jazzy/issues/714 +$("code q").replaceWith(function () { + return ["\"", $(this).contents(), "\""]; +}); diff --git a/docs/docsets/Gifu.docset/Contents/Resources/Documents/search.json b/docs/docsets/Gifu.docset/Contents/Resources/Documents/search.json new file mode 100644 index 0000000..32cefa2 --- /dev/null +++ b/docs/docsets/Gifu.docset/Contents/Resources/Documents/search.json @@ -0,0 +1 @@ +{"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_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.

    ","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE19setFrameBufferCountySiF":{"name":"setFrameBufferCount(_:)","abstract":"

    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.

    "},"Classes/Animator.html":{"name":"Animator","abstract":"

    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/Documents/undocumented.json b/docs/docsets/Gifu.docset/Contents/Resources/Documents/undocumented.json deleted file mode 100644 index 2c06585..0000000 --- a/docs/docsets/Gifu.docset/Contents/Resources/Documents/undocumented.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "warnings": [ - - ], - "source_directory": "/Users/kaishin/Developer/Frameworks/Gifu" -} \ 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 f75ab1c04ca4466535dca102d2928ac239fbecdc..87f765ab5927b741bde0d683621e60bf4937adf0 100644 GIT binary patch literal 12288 zcmeI1OHZNLTq62Xdyxtpu|XyB%GKY zT4mZxkL@{`rZerO{RZu{pCV~*Z9hYMZo9j(f-T#SA|N@)Gqz-}_W#!I|0ic|&54>2 z+>n)RP798Jc0f^JIv4~1^rN>Mz0H>kop{VI=tz~F*E{V87rXv!MWZg?Md14aeK;>C z0!{>+2sjaNBH%>8iGULUCjw3coCr7(a3b)|N8ql@>t_Zioff66@Pw22Em=_oPT{vw z_y>19oroqj)*c{vd{`Usruqd^}CFDkMo^KwpoeR6S2+s^fzqd_ki zjORF271Yv!j0^>65b%%3BoRH-k`*#k8jqMik_#heX)x%&I-5$Swz*AVMHC)aTwFdt zCUCtF3^00sR#fvjt{7UI3eOALmYg-kSIroR@Ke+C)3f5n&a}M#fDiF%xcs7!xE(G@ zo8yXtGPQOFfer}KiM75CAgPK{#u>~Oi@_=G7T7Mn1=j%PLt5(B{qqn{Tg zQ42j5wXGQ;Cv0+>VD-hEL_8mel(g*0it#aa1gSKx!>iU>o*gcixTf(N{6r58!hu;5 z;kYbmoG1y3nM(7hMk>dN&P#q83gl75{&~lJHc@HxgV=YD*BNn`=Oa4{}QjEUIk^M(7y{Ifg znJ*MK^%fIhS2C`f>Ab zZGSYZHeU69>g}de^e^x`IO%zH^yueEbRqyifJXRFp|Y>V|9uRN@SiGiap^#AfpZ}m z;Xh?;ef#l$AW9?rr%;PTZlr_x|Li)%_)i@p|M%X982>5jvT|hne@2EF|EZJWe`b|=8K)8c-J>b4=S4*#Ftff)a(8lY~U z!`aCiVln@B7a_)fto4NXzbgkZ{!><3w;kVF{C`Tq6&ps%PK5tEA3%)%)E?6v8~=Cc zA9@M?mnk!99btEE^s3_QcbEU$^))ZS|NXqP;M-ep?;yIX|A51%-|`at-_JoS0-lhE z`x0V(m)i6mi1EL)|GY!|->UaQjQ>{4ECqB_gkAms?4SzKk}Y~G#Q1MD&YJwAvTon( zYRTp;i1DAQ;_vfI{BpZ^;kK#c#C z1=nqBtik_Yy&GcuM}644#Q#vi@xDTpQM)bg-+=$=yAb2QQA4(rRq?;)9v0n89S8rr pv$#4{~s^6<|zOG literal 12288 zcmeI1O;g)O7{^y&tqp$5J8_66?l2S>k{I(6133_4Z0ZRRVmUNP4?@^$td5Z!NrsRf z8s*qqdu^Le`yJZP&>q`sduV!Z+Aq+V?ye=UWkH;ZP% za^#EdbUrg*$i(lj8iC+TP9eioR97c$o$LU@%=3 zH4SOzg|-a!vw-VM&C3#gNvNo_$!t$pU(yE?msl{^H@BF}=C;I5v?igQmWP`gXa^w% z!9dL5N|IKqio3(Y?8q|GD@w^S-_~Owq0MH~lZ#Tho*Zv(O_?^bX~42b5~amY2K>br;9-*&P;ZJAi)AE$X?+6r8#^+7NZGZK<4>BBpcURgj@v?=Py z9*fn3M&1<1o~dHCkQ{Heu*wU`2^?gjCpi}cfgcm5FR);QTcjGN6R?^9L`yU6r=No$6*DI4wGs}D8qSqh5GtY4usLIgb*I5*=%lrW zl$>#}nk@(gVf!ouH?da@=~)#YWVh?(GE&n@UDo$kiVMFEcC)-x5T2faU@m5)a64a7 z>eW&nY0^_f$Dkd7=kcVY7-X_w?pJR$C7zF{{>HLjg%tX@qQ zRsCokrrK;$kJTsyiI_23Q&CM+QC3m&sIDRR0Z!R0Qg22n;s=I5_I!T7)eKXS>2}59 zE{M7~TUC@AU0bt7Wvf<2x}?Y-h;pflRBI=@SZfa6@orC&-EIzGEjgCOOB-)6?0Aw4 zX=ZOoyp&9}jS43s8lr%=im?{PVfMtH4>&lo!d$_7sPw;N}1;0XikXkkst)iG2@*=$d`<>5P~VrP$XGbC0Ub-kwqatf9 zR+7mkQ+N4v5^GIs!hHu1eGv3?heo!~E#-vWR1{1njP3;%^c zm;Vbm{4RixH%3nZPXWBsS&aV-P9#qJ&&61b|BOk-=7lDe%fl?jf2L7T9LE3sV=Tsh z1{ZoXHNBqyFRep@|IAzC|JVj3_|MoA^%3&_#mA7~KXZKi-#5cz{AXIzzcs7Y)sg=% zq*#pqWP%!#NnR;f9jvPp|DUfzg8z&Isk`U41Nr~l4kY-`IB@zAP+XHF z^S|FX2MPY;n&AZTKh%ieb4(MocO1MUHg~}P>?26Y?P`u1;$K_@DUyUlWw^0RR91 diff --git a/docs/docsets/Gifu.tgz b/docs/docsets/Gifu.tgz index a0cb9cafef7a1cf067c0409f33f34138ad619653..3e962f72cb0b4e4e3b1d82b319fb895b237fc279 100644 GIT binary patch literal 51829 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

    BxUzgDuN8=E!Exwt*vCVzL`L+S1l;}16Q4~ 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 literal 51585 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 diff --git a/docs/index.html b/docs/index.html index 43590aa..527df1b 100644 --- a/docs/index.html +++ b/docs/index.html @@ -56,15 +56,15 @@

    -

    Logo

    +

    Logo

    -

    GitHub release Bitrise Carthage compatible Join the chat at https://gitter.im/kaishin/gifu Swift 3.0.x platforms

    +

    GitHub release Bitrise Carthage compatible Join the chat at https://gitter.im/kaishin/gifu Swift 3.0.x platforms

    Gifu adds protocol-based, performance-aware animated GIF support to UIKit. (It’s also a prefecture in Japan).

    -

    Swift 2.3 support is on the swift2.3 branch which will not be getting any future updates.

    -

    Install

    -

    Carthage

    +

    ⚠ The master branch works with Xcode 9 and iOS 11, which are both in beta. Use v2.0 for the stable version.

    +

    Install

    +

    Carthage

    • Add the following to your Cartfile: github "kaishin/Gifu"
    • @@ -72,34 +72,34 @@
    • Follow the current instructions in Carthage’s README for up to date installation instructions.
    -

    CocoaPods

    +

    CocoaPods

    • Add the following to your Podfile: pod 'Gifu'
    • You will also need to make sure you’re opting into using frameworks: use_frameworks!
    • Then run pod install with CocoaPods 0.36 or newer.
    -

    How It Works

    +

    How It Works

    -

    Gifu does not require using the built-in GIFImageView subclass. The Animator class does the heavy-lifting, while the GIFAnimatable protocol exposes the functionality to the view classes that conform to it, using protocol extensions.

    +

    Gifu does not require using the built-in GIFImageView subclass. The Animator class does the heavy-lifting, while the GIFAnimatable protocol exposes the functionality to the view classes that conform to it, using protocol extensions.

    -

    The Animator has a FrameStore that only keeps a limited number of frames in-memory, effectively creating a buffer for the animation without consuming all the available memory. This approach makes loading large GIFs a lot more resource-friendly.

    +

    The Animator has a FrameStore that only keeps a limited number of frames in-memory, effectively creating a buffer for the animation without consuming all the available memory. This approach makes loading large GIFs a lot more resource-friendly.

    The figure below summarizes how this works in practice. Given an image containing 10 frames, Gifu will load the current frame (red), buffer the next two frames in this example (orange), and empty up all the other frames to free up memory (gray):

    -

    -

    Usage

    +

    +

    Usage

    There are two options that should cover any situation:

      -
    • Use the built-in GIFImageView subclass if you don’t need to combine GIF support with another image library.
    • -
    • If you need more flexibility and composability, make your class conform to GIFAnimatable. In practice, any UIView subclass would do, since you get most of the required properties for free. For best results, make your UIImageView subclass conform to GIFAnimatable to get access to other features such as intrinsic content size.
    • +
    • Use the built-in GIFImageView subclass if you don’t need to combine GIF support with another image library.
    • +
    • If you need more flexibility and composability, make your class conform to GIFAnimatable. In practice, any UIView subclass would do, since you get most of the required properties for free. For best results, make your UIImageView subclass conform to GIFAnimatable to get access to other features such as intrinsic content size.
    -

    GIFAnimatable

    +

    GIFAnimatable

    -

    The bread and butter of Gifu. Through protocol extensions, GIFAnimatable exposes all the APIs of the library, and with very little boilerplate, any class can conform to it.

    +

    The bread and butter of Gifu. Through protocol extensions, GIFAnimatable exposes all the APIs of the library, and with very little boilerplate, any class can conform to it.

    class MyImageView: UIImageView, GIFAnimatable {
       public lazy var animator: Animator? = {
         return Animator(withDelegate: self)
    @@ -164,9 +164,9 @@ containing 10 frames, Gifu will load the current frame (red), buffer the next tw
       }
     }
     
    -

    Examples

    +

    Examples

    -

    The simplest way to get started is initializing a GIFAnimatable class in code or in a storyboard, then calling animate(:) on it.

    +

    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")
     
    @@ -188,26 +188,26 @@ containing 10 frames, Gifu will load the current frame (red), buffer the next tw } -

    If you are using a GIFAnimatable class in a table or collection view, you can call the prepareForReuse() method in your cell subclass:

    +

    If you are using a GIFAnimatable class in a table or collection view, you can call the prepareForReuse() method in your cell subclass:

    override func prepareForReuse() {
       super.prepareForReuse()
       imageView.prepareForReuse()
     }
     
    -

    Demo App

    +

    Demo App

    Clone or download the repository and open Gifu.xcworkspace to check out the demo app.

    -

    Documentation

    +

    Documentation

    See the full API documentation.

    -

    Compatibility

    +

    Compatibility

    • iOS 9.0+
    • Swift 3.0
    • Xcode 8.0
    -

    License

    +

    License

    See LICENSE.

    @@ -215,7 +215,7 @@ containing 10 frames, Gifu will load the current frame (red), buffer the next tw
    diff --git a/docs/js/jazzy.js b/docs/js/jazzy.js index 4ff9455..3965b5f 100755 --- a/docs/js/jazzy.js +++ b/docs/js/jazzy.js @@ -38,3 +38,9 @@ $(".token").click(function(event) { } event.preventDefault(); }); + +// Dumb down quotes within code blocks that delimit strings instead of quotations +// https://github.com/realm/jazzy/issues/714 +$("code q").replaceWith(function () { + return ["\"", $(this).contents(), "\""]; +}); diff --git a/docs/search.json b/docs/search.json new file mode 100644 index 0000000..32cefa2 --- /dev/null +++ b/docs/search.json @@ -0,0 +1 @@ +{"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_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.

    ","parent_name":"GIFAnimatable"},"Protocols/GIFAnimatable.html#/s:4Gifu13GIFAnimatablePAAE19setFrameBufferCountySiF":{"name":"setFrameBufferCount(_:)","abstract":"

    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.

    "},"Classes/Animator.html":{"name":"Animator","abstract":"

    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