Mac*_*ado 6 memory animated-gif ios swift
我一直在测试许多开源动画 gif 库,以将GIF文件加载到我们的Swift项目中。
它们中的大多数声称是高性能库,但是,每当我加载动画 gif 时,我的应用程序都会使用大约 8MB 的内存。
问题是这个专用内存空间似乎永远不会被释放。我们可以看到它线性增长:
这让我怀疑我在这里做的是否正确。这种行为是正确的,还是可能对用户不利?
您需要手动删除 Gif 图像才能将它们从内存中清除。
示例:在此示例中,gifViwer 可以作为您的 Gif 查看器
self.gifViewer.removeFromSuperview()
self.gifViewer = nil
Run Code Online (Sandbox Code Playgroud)
如果您必须分配一个委托,那么您还可以添加
self.gifViewer.Delegate = nil
Run Code Online (Sandbox Code Playgroud)
注意:您需要viewControler在完全卸载时运行此程序,因为应用程序将gifViewer在删除后开始在视图中查找。如果您需要在不卸载视图的情况下从内存中清除 gif 图像,那么我建议使用上述步骤,然后以编程方式将视图添加到 superView。这不适用于界面设计器和 IBOutlets
let gifViewer = yourGifViewerClass(frame: CGRect(x: 20, y: 20, width: self.view / 2, height: self.view / 2))
// setup your gifViewer
Run Code Online (Sandbox Code Playgroud)