Я новичок в SwiftUI и разработке iOS (я начал изучать 2 дня go). До этого делал Android приложений. Я изучил некоторые основы, но не могу понять, как анимировать несколько изображений. Мне нужно отобразить серию изображений с задержкой 1,2 секунды, прежде чем изменять их в кадре.
Я нашел здесь код, но они используют UIImage, который является старой структурой, и анимацию нельзя остановить.
import SwiftUI
struct SplashScreen: UIViewRepresentable {
let imageSize: CGSize
let imageNames: [String]
let duration: Double
func makeUIView(context: Self.Context) -> UIView {
let containerView = UIView(frame: CGRect(x: 0, y: 0
, width: imageSize.width, height: imageSize.height))
let animationImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: imageSize.width, height: imageSize.height))
animationImageView.clipsToBounds = true
animationImageView.layer.cornerRadius = 5
animationImageView.autoresizesSubviews = true
animationImageView.animationRepeatCount = 3
animationImageView.contentMode = UIView.ContentMode.scaleAspectFill
var images = [UIImage]()
imageNames.forEach { imageName in
if let img = UIImage(named: imageName) {
images.append(img)
}
}
animationImageView.image = UIImage.animatedImage(with: images, duration: duration)
animationImageView.image = animationImageView.animationImages?.last!
containerView.addSubview(animationImageView)
return containerView
}
func updateUIView(_ uiView: UIView, context: UIViewRepresentableContext<SplashScreen>) {
}
}
Этот код от Хулио Бейлона.
Мне не удалось найти ни одного руководства, в котором показано, как это сделать в SwiftUI.
** 1. Анимируйте изображения 3 раза.
В конце запустить другой ViewController без возможности возврата. (Я думаю о занятиях Android, но не знаю, насколько это помогает) **