davecom / DKAsyncImageView

A Swift subclass of NSImageView for loading remote images asynchronously.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DKAsyncImageView

Swift Versions CocoaPods Version SPM Supported CocoaPods Platforms Twitter Contact

DKAsyncImageView is a Swift subclass of NSImageView for loading remote images asynchronously and displaying them on OS X.

This class was originally a port of PVAsyncImageView by @pedrovieira7 from Objective-C to Swift.

Features

  • Download images from the Web to DKAsyncImageView asynchronously with just 1 line of code
  • Set a 'Placeholder Image' to be displayed until the image is downloaded
  • Set an 'Error Image' to be displayed when an error occurs while downloading the image
  • Set ToolTips for each state -> Loading Image / Image Loaded / Error Loading Image
  • Display a Spinning Wheel on top of DKAsyncImageView while it's downloading the image
  • No external dependencies beyond AppKit

Documentation

Include DKAsyncImageView.swift in your project, use the CocoaPod DKAsyncImageView, or use SPM with this repository as your dependency. Set an IB NSImageView's class as DKAsyncImageView or create it programmatically. In the latter case, use the standard NSImageView init methods.

Note: DKAsyncImageView 1.0.3/1.0.4 supports Swift 4 and Swift 5. Version 1.0.2 supports Swift 3. Version 1.0.1 supports Swift 2. Version 1.0 supports Swift 1.2.

Download an Image

func downloadImageFromURL(url: String, placeHolderImage: NSImage? = nil, errorImage: NSImage? = nil, usesSpinningWheel: Bool = false, completion: ((Data?, Error?) -> Void)? = nil) 

At minimum, you simply must provide the URL of the image you want to asynchronously download. However, you also have the option of providing a placeHolderImage that displays while the download is taking place, and an errorImage that displays if the download is unsuccessful.

usesSpinningWheel specifies whether a spinning NSProgressIndicator appears over the NSImageView while the image is being downloaded. completion is a block to be executed when the download task finishes

Set Tool Tips

func setToolTipWhileLoading(ttip1: String?, whenFinished ttip2:String?, andWhenFinishedWithError ttip3: String?)

Cancel a Download

cancelDownload()

There are no external dependencies other than the AppKit framework.

Future Direction/Ideas

  • Make property based instead of method based

About

A Swift subclass of NSImageView for loading remote images asynchronously.

License:MIT License


Languages

Language:Swift 95.1%Language:Ruby 4.9%