Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在UIImageView IOS中加载动画gif_Ios_Uiimageview_Uiimage_Gif_Animated - Fatal编程技术网

在UIImageView IOS中加载动画gif

在UIImageView IOS中加载动画gif,ios,uiimageview,uiimage,gif,animated,Ios,Uiimageview,Uiimage,Gif,Animated,我已将此gif文件保存到我的资产文件中 资产的名称正在加载,但当我添加以下代码时,会出现nullpointer异常错误: let img = UIImage (named: "loading_apple") 那么如何显示此gif( 希望有人能帮助我。我建议你把那张gif的帧分开,然后用动画图像命名:duration:-你可以用类似的名字命名,但结尾要更改数字。例如: load-1.png load-2.png load-3.png等 Xcode将识别您想要的多个图像,并按顺序播放这些图像 请看

我已将此gif文件保存到我的资产文件中

资产的名称正在加载,但当我添加以下代码时,会出现nullpointer异常错误:

let img = UIImage (named: "loading_apple")
那么如何显示此gif(


希望有人能帮助我。

我建议你把那张gif的帧分开,然后用
动画图像命名:duration:
-你可以用类似的名字命名,但结尾要更改数字。例如:

load-1.png
load-2.png
load-3.png

Xcode将识别您想要的多个图像,并按顺序播放这些图像


请看

我建议使用FLAnimatedImage

而不是存储gif文件,为什么不使用
CareReplicatorLayer
参考这个和这个,我在第二个类似的地方使用了相同的代码,并做了一些修改

func spinTheCustomSpinner() -> Void {
    let aBar:CALayer = CALayer.init()
    aBar.bounds = CGRectMake(0, 0, 8, 25);
    aBar.cornerRadius = 4; //(8/2)
    aBar.backgroundColor = UIColor.blackColor().CGColor
    aBar.position = CGPointMake(150.0, 150.0 + 35)

    let replicatorLayer:CAReplicatorLayer = CAReplicatorLayer.init()
    replicatorLayer.bounds = CGRectMake(0, 0,300,300)
    replicatorLayer.cornerRadius = 10.0
    replicatorLayer.backgroundColor = UIColor.whiteColor().CGColor
    replicatorLayer.position = CGPointMake(CGRectGetMidX(self.view!.bounds), CGRectGetMidY(self.view!.bounds))
    let angle:CGFloat = CGFloat (2.0 * M_PI) / 12.0
    let transform:CATransform3D = CATransform3DMakeRotation(angle, 0, 0, 1.0)
    replicatorLayer.instanceCount = 12
    replicatorLayer.instanceTransform = transform
    replicatorLayer .addSublayer(aBar)
    self.view!.layer .addSublayer(replicatorLayer)

    aBar.opacity = 0.0
    let animationFade:CABasicAnimation = CABasicAnimation(keyPath: "opacity")
    animationFade.fromValue = NSNumber(float: 1.0)
    animationFade.toValue = NSNumber(float: 0.0)
    animationFade.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
    animationFade.repeatCount = HUGE
    animationFade.duration = 1.0

    let aBarAnimationDuration:Double = 1.0/12.0
    replicatorLayer.instanceDelay = aBarAnimationDuration
    aBar .addAnimation(animationFade, forKey: "fadeAnimation")

}
如果你使用上面的视图,加载时显示此视图,加载后隐藏,这真的很酷很方便,而且存储gif文件和使用图像视图加载也不麻烦


通过改变aBar层的属性,你可以得到不同的效果。

你确定这不是“加载”apple.gif吗?是的,我也尝试过加载apple.gif,其他格式也可以很好地使用图像文字:)我尝试过这样做:让img=UIImage.animatedImageNamed(“tmp”,持续时间:1.0)!,但我收到了相同的错误消息:“在展开可选值时意外地发现了nil”您收到了!很乐意帮忙