// // AnimatingView.swift // Crush // // Created by Leon on 2025/8/23. // import UIKit import APNGKit enum AnimatingViewType { case generating } /// APNG动画,loadingView,以APNG格式的图片为主 class AnimatingView: UIView{ var iv : APNGImageView! var type: AnimatingViewType = .generating private override init(frame: CGRect) { super.init(frame: frame) } convenience init(type: AnimatingViewType = .generating) { self.init(frame: .zero) self.type = type setupViews() } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } private func setupViews() { backgroundColor = .clear iv = { let v = APNGImageView() v.contentMode = .scaleAspectFit addSubview(v) v.snp.makeConstraints { make in make.edges.equalToSuperview() } return v }() switch type { case .generating: if let url = Bundle.main.url(forResource: "generating", withExtension: "png") { let image = try? APNGImage(fileURL: url) iv.image = image } } } }