Je lance une animation après que l'utilisateur appuie sur un logo. Ceci est l'animation:Swift: L'animation iOS s'arrête après l'affichage du MessageController (page de message d'iOS)
func rightRotateView(targetView: UIView, duration: Double = 5) {
UIView.animate(withDuration: duration, delay: 0.0, options: [.repeat, .curveLinear] , animations: {
targetView.transform = targetView.transform.rotated(by: CGFloat.pi * 5)
}) { finished in
// self.rightRotateView(targetView: targetView)
}
}
Après 3 secondes d'une pression longue (dans ce temps, l'animation doit encore fonctionner), je présente le contrôleur de message pour l'utilisateur:
if MFMessageComposeViewController.canSendText() == true {
print(self.urgentNumber)
let recipients:[String] = ["\(self.urgentNumber as! String)"]
self.messageController.messageComposeDelegate = self as? MFMessageComposeViewControllerDelegate
self.messageController.recipients = recipients
self.messageController.body = "Hey,\nmy longitude: \(self.userLocation.coordinate.longitude) \nmy latitude: \(self.userLocation.coordinate.latitude)"
self.present(self.messageController, animated: true, completion: nil)
} else {
//handle text messaging not available
}
quand je appuyez sur le bouton annuler dans le contrôle des messages, je retourne à la page d'animation, mais l'animation cesse de fonctionner. J'ai essayé de relancer l'animation après le présent, et dans le
func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) {
}
Mais cela n'a pas fonctionné.
J'ai essayé ceci, et j'ai vu que l'animation venait de redémarrer quand j'ai ajouté cette implémentation. Si l'animation est au milieu, elle redémarrera, donnant un effet saccadé. Y at-il un moyen de contourner cela? – ArielSD