Vous souhaitez faire une image de chargement sur votre application ? Il est impossible d'afficher une image GIF dans nos applications. Il faut décomposer votre animation en plusieurs images, et grâce à une UIimageView, on peut faire une animation en quelques lignes.
On utilise trois variables, UIImageView, et deux valeurs CGFloat pour récupérer la hauteur et la largeur du device :
private var animatedImageView = UIImageView()
private var screenwidth: CGFloat = 0.0
private var screenheight: CGFloat = 0.0
On récupère les données de la largeur et de la hauteur de l'écran de l'écran :
screenwidth = UIScreen.main.bounds.size.width // Largeur
screenheight = UIScreen.main.bounds.size.height // Hauteur
On nomme 3 images (gif1,gif2 et gif3) qu'on rajoute dans le dossier des Assets :
UIImage(named: "gif1")
UIImage(named: "gif2")
UIImage(named: "gif3")
La fonction animationDuration de l'UIImageView animatedImageView permet de passer à l'image suivante toutes les x secondes. Le code source ci-dessous permet d'afficher une image de 100*100px à une seconde d'intervalle au milieu de l'écran.
let gifwidth: CGFloat = 100
let gifheight: CGFloat = 100
let gifleft: CGFloat = (self.screenwidth - gifwidth) / 2
let giftop: CGFloat = ((self.screenheight - 120) - gifheight) / 2
self.animatedImageView = UIImageView(frame: CGRect(x: gifleft, y: giftop, width: gifwidth, height: gifheight))
self.animatedImageView.animationImages = [UIImage(named: "gif1")!, UIImage(named: "gif2")!, UIImage(named: "gif3")!]
self.animatedImageView.animationDuration = 1.0
self.animatedImageView.animationRepeatCount = 0
self.view.addSubview(self.animatedImageView)
Pour démarrer l'animation :
self.animatedImageView.startAnimating()
Pour stopper l'animation :
self.animatedImageView.stopAnimating()
Pour supprimer l'animation de la superview (self.view étant parent à animatedImageView) :
self.animatedImageView.removeFromSuperview()