UIImage是什麼
用來管理APP裡的圖片資源,可以用來表示設備支持的圖片資源,不僅僅是jpg和png。 UIImage是immutable的,因此也是線程安全的。 iOS支持的所有的圖片格式
鏈接 不過,對於gif格式,只能展示第一幀。需要把gif分成若干幀,分別展示。 iOS本身的圖片緩存系統
iOS本身有一個圖像緩存系統。系統在內存不夠使,會清除緩存中的一些內容。
使用init(named:in:compatibleWith:)
方法生成的image被加入到了系統緩存中去。因此適合於創建頻繁使用的圖片。這個方法在iOS9以後是線程安全的。
使用imageWithContentsOfFile:
的方法創建的image沒有被加入系統緩存中去,每次調用都會重新載入圖片。 如何比較兩張圖片的數據是否一致。
由於圖像存在緩存系統,因此唯一可以比較圖片數據是否相同的方法是isEqual(_:)
方法,這個方法比較真實的圖片數據。 從UIImage獲取圖像的其他表示方法
cgImage
屬性,在Core Graphics框架內。
ciImage
屬性,在Core Image框架內
UIImagePNGRepresentation(_:)
, png格式的數據
UIImageJPEGRepresentation(_:_:)
, jpg格式的數據
展示一系列圖片
UIImage可以展示一些列圖片,得到類似gif的圖片效果。這些圖片應該有相同的size和scale
class func animatedImage(with images: [UIImage], duration: TimeInterval) -> UIImage?
class func animatedResizableImageNamed(_ name: String, capInsets: UIEdgeInsets, duration: TimeInterval) -> UIImage?
class func animatedImageNamed(_ name: String, duration: TimeInterval) -> UIImage?
class func animatedResizableImageNamed(_ name: String, capInsets: UIEdgeInsets, resizingMode: UIImageResizingMode, duration: TimeInterval) -> UIImage?
其中,name
是圖片路徑的前綴。