Skip to content

DimaMishchenko/UIImagePlusPDF

Repository files navigation

UIImagePlusPDF

Swift 4.2 CocoaPods compatible Packagist

UIImage extensions to use PDF files. Using UIImagePlusPDF you can avoid a lot png images files (1x, 2x, 3x sizes) and simply replace each of them with only one pdf file.

Installation

CocoaPods:

pod 'UIImagePlusPDF'
import UIImagePlusPDF

Usage

Simple example:

let imageView = UIImageView()
let image = UIImage.pdfImage(with: "imageName")
imageView.image = image

Other options

//with custom width 
UIImage.pdfImage(with: "imageName", width: 350)

//with custom height
UIImage.pdfImage(with: "imageName", height: 350)

//with custom size
UIImage.pdfImage(with: "imageName", size: CGSize(width: 300, height:  400))

//with page number
UIImage.pdfImage(with: "multipage pdf file", width: 300, pageNumber: 2)

//same options with resource url
UIImage.pdfImage(with: URL(string: "path"))

Cache

Memory cache:

//using NSCache
//default is true
UIImage.pdfCacheInMemory = true

Disk cache:

//default is false
UIImage.pdfCacheOnDisk = true

Cache deleting:

//all cache
UIImage.removeAllPDFCache()

//all memory cache
UIImage.removeAllPDFMemoryCache()

//all disk cache
UIImage.removeAllPDFDiskCache()

//memory cached pdf with name
UIImage.removeMemoryCachedPDFImage(
    with: "pdf name", 
    size: imageSize, 
    pageNumber: 1 /*optional, default is 1*/
)

//memory cached pdf with url
UIImage.removeMemoryCachedPDFImage(
    with: URL(string: "path"), 
    size: imageSize, 
    pageNumber: 1 /*optional, default is 1*/
)

//disk cached pdf with name
UIImage.removeDiskCachedPDFImage(
    with: "pdf name", 
    size: imageSize, 
    pageNumber: 1 /*optional, default is 1*/
)

//disk cached pdf with url
UIImage.removeDiskCachedPDFImage(
    with: URL(string: "path"), 
    size: imageSize, 
    pageNumber: 1 /*optional, default is 1*/
)

License

UIImagePlusPDF is under MIT license. See the LICENSE file for more info.