我将此资源作为视图的背景,并使用下面描述的代码将其分配给背景。
动画是让对角线行动画,所以当加载发生时它们会从左向右移动。
有关如何完成此操作的任何指示?
var view = UIImageView()
view.translatesAutoresizingMaskIntoConstraints = false
view.image = UIImage(assetIdentifier: "background-view")
view.layer.cornerRadius = 8.0
view.layer.masksToBounds = true
view.contentMode = .ScaleAspectFill
view.clipsToBounds = true
view.backgroundColor = UIColor.whiteColor()
return view
答案 0 :(得分:0)
我想最好的方法是让所有图像都需要(所有帧)来创建你想要的动画图像,然后将这些图像放在UIImageView's animationImages
属性中。
例如,如果你得到一个加载条gif loading_bar.gif
,你可以获得该gif中的所有不同图像(参见本教程以及其他文章:http://www.macobserver.com/tmo/article/preview-extracting-frames-from-animated-gifs)。
在代码中加载所有图像(例如在assets文件夹中),然后执行以下操作:
func getAnimatedImages -> Array<UIImage>
{
var animatedImages = Array<UIImage>()
var allImagesLoaded = false
var i = 0
while !allImagesLoaded
{
if let image = UIImage(named: "background_" + String(i))
{
animatedImages.append(image)
i++
}
else
{
allImagesLoaded = true
}
}
return animatedImages
}
(如果您将图像称为background_0,background_1等...) 然后
self.yourBackgroundImageView.animationImages = self.getAnimatedImages
self.yourBackgroundImageView.startAnimating()
答案 1 :(得分:0)
我会使用方法class func animatedImageNamed(_ name: String, duration duration: NSTimeInterval) -> UIImage?
来自Apple doc:
此方法会尝试从名称为“image0”,“image1”等文件加载图像,直到“image1024”。动画图像中包含的所有图像应具有相同的大小和比例。
如果你创建一个动画图像,你可以将它分配给你的UIImageView,它会自动动画。
至于图像创建@Randy有一个很好的主意:)