43 lines
1.1 KiB
Swift
43 lines
1.1 KiB
Swift
//
|
|
// ImageView.swift
|
|
// Runner
|
|
//
|
|
// Created by LittleSheep on 2025/4/21.
|
|
//
|
|
|
|
import UIKit
|
|
import Kingfisher
|
|
|
|
class ImageView: UIImageView {
|
|
private var _size: CGSize = CGSize(width: 0, height: 0)
|
|
|
|
// Initialize the image view
|
|
override init(frame: CGRect) {
|
|
super.init(frame: frame)
|
|
contentMode = .scaleAspectFill
|
|
clipsToBounds = true
|
|
}
|
|
|
|
required init?(coder: NSCoder) {
|
|
super.init(coder: coder)
|
|
contentMode = .scaleAspectFill
|
|
clipsToBounds = true
|
|
}
|
|
|
|
// Method to set the image from a URL using Kingfisher
|
|
func setImage(from url: URL, blurHash: String?) {
|
|
let placeholderImage = blurHash != nil ? UIImage.init(blurHash: blurHash!, size: _size) : nil
|
|
let processor = DownsamplingImageProcessor(size: _size) |> RoundCornerImageProcessor(cornerRadius: 20)
|
|
|
|
self.kf.indicatorType = .activity
|
|
self.kf.setImage(
|
|
with: url,
|
|
placeholder: placeholderImage,
|
|
options: [
|
|
.processor(processor),
|
|
.transition(.fade(0.3))
|
|
]
|
|
)
|
|
}
|
|
}
|