SwiftUI 显示 gif 图像

Posted

技术标签:

【中文标题】SwiftUI 显示 gif 图像【英文标题】:SwiftUI display gif image 【发布时间】:2022-01-18 23:43:39 【问题描述】:

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

因为图片

Image("fall-leaves")

不支持 gif 格式

在下面回答

【问题讨论】:

【参考方案1】:

在 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

【讨论】:

在您的应用中需要或使用 gif 的位置和原因? @swiftPunk hah) 目前我正在开发另一个应用程序 - 图像查看器 :) 但我也会在 taoGit 中使用这个东西 - 预览提交的图像。所以这段代码在两个项目中都很有用 我能理解的唯一用例是将它用作聊天应用程序中的头像图像或其他东西,但这甚至没有必要。额外不必要的功能。 @swiftPunk 这对开发人员来说是不必要的功能。但不适用于 UI 设计师或图形艺术家 :) 你在 git 上看起来就像一个开发人员。但是 git 也可以用于其他职业。如果 git-client 足够容易使用 ofc 关于用例,我必须补充一点,gif 对于作为消息发送也很重要,我差点忘了那个。 :)

以上是关于SwiftUI 显示 gif 图像的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 中的自定义模态转换

从数组中显示带有名称的随机图像。 (SwiftUI)

SwiftUI @State 更改正在显示的图像

如何在用户点击的地方显示图像? SwiftUI

无法点击 SwiftUI 网格图像以显示 DetailView

为啥使用 SwiftUI 按钮的图像背景不显示在工具栏中?