I want to create an animation that will resize an UIView and its contents by a factor. Basically, I want to make an animation that first expands the view then shrinks it bac
Swift 5 UIView extension:
extension UIView {
func pulse(withIntensity intensity: CGFloat, withDuration duration: Double, loop: Bool) {
UIView.animate(withDuration: duration, delay: 0, options: [.repeat, .autoreverse], animations: {
loop ? nil : UIView.setAnimationRepeatCount(1)
self.transform = CGAffineTransform(scaleX: intensity, y: intensity)
}) { (true) in
self.transform = CGAffineTransform.identity
}
}
}
And then use the following:
yourView.pulse(withIntensity: 1.2, withDuration: 0.5, loop: true)
Just make sure you replace yourView
with your own view.