在NSImageView中显示gif - Swift 3 - Mac

时间:2018-02-16 19:00:36

标签: swift gif nsimageview

我正在尝试在NSImageView中加载并显示一个gif文件,但在运行项目时没有任何内容。

我尝试使用url,data或named将gif文件与NSImageView链接,但它不起作用。

 func applicationDidFinishLaunching(_ aNotification: Notification)
    {
 let url = Bundle.main.url(forResource: "RSynchro-Gif", withExtension: "gif")!
        let data = try! Data(contentsOf: url)
        gifBoutton.image = NSImage(data: data)
}

func applicationDidFinishLaunching(_ aNotification: Notification)
    {
        let url = Bundle.main.url(forResource: "RSynchro-Gif", withExtension: "gif")!
        gifBoutton.image = try! NSImage(data: Data(contentsOf: url))
    }

func applicationDidFinishLaunching(_ aNotification: Notification)
    {

       let icon = NSImage(named: NSImage.Name(rawValue: "RSynchro-Gif"))
       imageGif.image = icon
       imageGif.animates = true
    }

它们都不起作用,但如果我用.png替换.gif文件,它就可以了。 有人向我展示正确的方法吗? 感谢。

1 个答案:

答案 0 :(得分:2)

(请参阅下面对我的回答的编辑。我的初步答案已过时,因此错误。)

我不相信Mac OS中对GIF图像类型有原生支持。 (我知道在iOS中没有这样的事情,我现在大部分工作都在这里,而且我相信Mac OS也是如此。我知道Mac OS不支持GIF。大约3年前。)

编辑:

显然我错了。如果您将图片直接放入应用程序的捆绑包中而不是放入资产目录中,则看起来可以加载GIF图像的第一帧。如果您在资产目录中创建了一个图像集并将GIF拖入其中,它似乎在Xcode中工作,但图像无法加载。 (我尝试使用Mac应用程序和iOS应用程序,结果是一样的。)