【问题标题】:Add GIF to Swift Playground将 GIF 添加到 Swift Playground
【发布时间】:2019-08-07 12:09:27
【问题描述】:

我在 Swift Playground 中有一个 SKScene,我想将此 gif (https://media.giphy.com/media/uMU6E2DFqeZSE/giphy.gif) 作为 SKSpriteNode 添加到背景中。我首先尝试将其作为动画 UIImage 转换为 SKSpriteNode,如下所示:

let dance = UIImage.animatedImageNamed("macarenadance.gif", duration: 3.0)
let texture = SKTexture(image: dance!)
let testImage = SKSpriteNode(texture: texture)
scene.addChild(testImage)

但它遇到转换错误并在运行中途停止。似乎不可能将动画 UIImage 用作精灵。非常感谢在 Swift Playground 中显示 gif 的任何建议/替代方案。

【问题讨论】:

    标签: swift sprite-kit gif swift-playground


    【解决方案1】:

    不幸的是,UIImage 不支持 gif 动画,但幸运的是,有 3rd 方库可以帮助您。

    它叫SwiftGif

    以下是示例用法。将文件添加到 Playground 的源代码并将其粘贴到:

    import UIKit
    import PlaygroundSupport
    
    
    
    let image = UIImage.gif(name: "yourgifgoeshere.gif")
    
    PlaygroundPage.current.liveView = imageView
    

    【讨论】:

    • imageView 可以这样设置:let imageView = UIImageView(image: image)
    【解决方案2】:

    也许你必须为 SKTextureAnimations 使用分离的图像:

       let texture = SKTexture.init(imageNamed: "macarenadance0.png")
       let texture1 = SKTexture.init(imageNamed: "macarenadance1.png")
       let texture2 = SKTexture.init(imageNamed: "macarenadance2.png")
    
        let textures = [texture,texture1,texture2]
    
        let testImage = SKSpriteNode(texture: texture);
    
        testImage.run(SKAction.repeatForever(
           SKAction.animate(with: textures, timePerFrame: 0.3)))
       addChild(testImage)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-17
      • 2020-05-30
      • 2015-06-24
      • 2010-12-14
      • 2021-07-01
      相关资源
      最近更新 更多