TVOS:无法使用 GIFU 框架显示 GIF

Posted

技术标签:

【中文标题】TVOS:无法使用 GIFU 框架显示 GIF【英文标题】:TVOS: Unable to display a GIF with GIFU framework 【发布时间】:2021-02-25 13:07:29 【问题描述】:

我正在关注这个tutorial: 一开始,我没有显示 gif,而是显示一个红色的 UIView 方块,只是为了测试:

通过使用此代码:

import Gifu
import TinyConstraints

class GifViewController: UIViewController 
   
     lazy var loadingGif: UIView = 
         let view = UIView()
         view.backgroundColor = .red
         return view
     ()
 
   override func viewDidLoad() 
          super.viewDidLoad()
          setupViews()
      
    fileprivate func setupViews()
        view.backgroundColor = .blue
        view.addSubview(loadingGif)
        loadingGif.centerInSuperview()
        loadingGif.width(300)
        loadingGif.height(300)
     
    

在我添加 Gif 代码替换红色方块 UIVIEW 之后:

import Gifu
import TinyConstraints

class GifViewController: UIViewController 
    /*
     lazy var loadingGif: UIView = 
         let view = UIView()
         view.backgroundColor = .red
         return view
     ()
     **/

    lazy var loadingGif: GIFImageView = 
        let view = GIFImageView()
        view.contentMode = .scaleAspectFit
        view.animate(withGIFNamed: "loading")
        return view
    ()
   override func viewDidLoad() 
          super.viewDidLoad()
          setupViews()
      
    fileprivate func setupViews()
        view.backgroundColor = .blue
        view.addSubview(loadingGif)
        loadingGif.centerInSuperview()
        loadingGif.width(300)
        loadingGif.height(300)
     
    

这是结果: 如您所见,什么都没有出现,我不知道为什么。 这是存储在资产中的“loading.gif”: 我尝试使用不同的 GIF,但仍然没有出现。关于为什么没有出现的任何提示?

【问题讨论】:

【参考方案1】:

我使用了另一个库,它就像一个魅力:

import SwiftGifOrigin

class GifViewController: UIViewController 
  
    lazy var loadingGif: UIImageView = 
        let view = UIImageView()
        view.loadGif(asset: "cvs_loader")
        view.contentMode = .scaleAspectFit
        return view
    ()
    
    override func viewDidLoad() 
        super.viewDidLoad()
        setupViews()
    
    fileprivate func setupViews()
        view.backgroundColor = .blue
        view.addSubview(loadingGif)
        loadingGif.centerInSuperview()
        loadingGif.width(175)
        loadingGif.height(300)
    

【讨论】:

以上是关于TVOS:无法使用 GIFU 框架显示 GIF的主要内容,如果未能解决你的问题,请参考以下文章

在 SceneKit 中使用 GIFU 库播放 GIF 会导致应用程序 UI 冻结任何解决方案? UIView Animated 从后台线程调用

如何在应用商店中直播 tvOS 应用

AppleTV - tvos - 使用本机和 TVMLKIT 的混合应用程序 - 无法返回本机应用程序

Swing 应用程序无法正确显示 gif 背景

在 Swift (tvOS) 中,如何更改 UIButton 的突出显示和焦点颜色?

无法在 tvOS 应用程序中加载 LCR 图像