Represents a subclass of UIImageView for displaying animated image. Different from showing animated image in a normal UIImageView (which load all frames at one time), AnimatedImageView only tries to load several frames (defined by framePreloadCount) to reduce memory usage. It provides a tradeoff between memory usage and CPU time. If you have a memory issue when using a normal image view to load GIF data, you could give this class a try.

Kingfisher supports setting GIF animated data to either UIImageView and AnimatedImageView out of box. So it would be fairly easy to switch between them.

Public property

  • Whether automatically play the animation when the view become visible. Default is true.

  • The count of the frames should be preloaded before shown.

  • Specifies whether the GIF frames should be pre-scaled to the image view’s size or not. If the downloaded image is larger than the image view’s size, it will help to reduce some memory use. Default is true.

  • Decode the GIF frames in background thread before using. It will decode frames data and do a off-screen rendering to extract pixel information in background. This can reduce the main thread CPU usage.

  • The animation timer’s run loop mode. Default is RunLoop.Mode.common. Set this property to RunLoop.Mode.default will make the animation pause during UIScrollView scrolling.

  • The repeat count. The animated image will keep animate until it the loop count reaches this value. Setting this value to another one will reset current animation.

    Default is .infinite, which means the animation will last forever.

  • Delegate of this AnimatedImageView object. See AnimatedImageViewDelegate protocol for more.