SwiftUI显示gif图像

And*_*rew 1 macos image animated-gif swift swiftui

swiftUI中显示动画gif图片的方法

因为图像

Image("fall-leaves")
Run Code Online (Sandbox Code Playgroud)

不支持gif

回答如下

And*_*rew 6

在 swiftUI 中显示 gif 图像最简单、最快的方法 - 是使用Preview//QuickLook (QL)QLPreviewView

Quartz 仅在 macOS 10.4+ 中可用https://developer.apple.com/documentation/quartz

import SwiftUI
import Quartz

struct QLImage: NSViewRepresentable {
    var url: URL
    
    func makeNSView(context: NSViewRepresentableContext<QLImage>) -> QLPreviewView {
        let preview = QLPreviewView(frame: .zero, style: .normal)
        preview?.autostarts = true
        preview?.previewItem = url as QLPreviewItem
        
        return preview ?? QLPreviewView()
    }
    
    func updateNSView(_ nsView: QLPreviewView, context: NSViewRepresentableContext<QLImage>) {
        nsView.previewItem = url as QLPreviewItem
    }
    
    typealias NSViewType = QLPreviewView
}
Run Code Online (Sandbox Code Playgroud)