import SwiftUI import UIKit // 包装UIImageView以支持APNG动画 struct APNGView: UIViewRepresentable { let imageName: String @Binding var isAnimating: Bool func makeUIView(context: Context) -> UIImageView { let imageView = UIImageView() // 从资源加载APNG if let image = UIImage(named: imageName) { imageView.image = image // 启用动画 imageView.animationImages = image.images // 设置动画时长(根据实际帧数调整) imageView.animationDuration = image.duration // 根据isAnimating状态决定是否开始动画 if isAnimating { imageView.startAnimating() } } return imageView } func updateUIView(_ uiView: UIImageView, context: Context) { // 根据isAnimating状态控制动画 if isAnimating { if !uiView.isAnimating { uiView.startAnimating() } } else { uiView.stopAnimating() } } }