Как подогнать анимацию Wave по размеру картинки?

Для того чтобы подогнать анимацию типа "Wave" по размеру картинки в Swift, можно воспользоваться следующим подходом:

  1. Импортируйте библиотеки и фреймворки, необходимые для работы с анимациями и изображениями:
import UIKit
import CoreGraphics
  1. Создайте функцию, которая будет выполнять анимацию "Wave":
func performWaveAnimation(to view: UIView, with duration: TimeInterval, amplitude: CGFloat, frequency: CGFloat) {
    let animation = CAKeyframeAnimation(keyPath: #keyPath(CALayer.transform))
    animation.values = [
        NSValue(caTransform3D: CATransform3DMakeTranslation(-amplitude, 0, 0)),
        NSValue(caTransform3D: CATransform3DMakeTranslation(amplitude, 0, 0))
    ]
    animation.timingFunctions = [
        CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeOut),
        CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeIn)
    ]
    animation.duration = duration
    animation.repeatCount = .infinity
    view.layer.add(animation, forKey: "waveAnimation")
}
  1. Создайте экземпляр UIImageView и установите в него изображение, которое нужно анимировать:
let imageView = UIImageView(image: UIImage(named: "imageName"))
  1. При необходимости, установите размеры imageView:
imageView.frame = CGRect(x: 0, y: 0, width: desiredWidth, height: desiredHeight)
  1. Добавьте imageView на нужное вам представление (например, на UIViewController.view):
self.view.addSubview(imageView)
  1. При необходимости, настройте параметры анимации (в нашем случае амплитуду и частоту):
let amplitude: CGFloat = imageView.frame.size.width / 10 // настройте амплитуду в зависимости от размеров вашего изображения
let frequency: CGFloat = 0.5 // настройте частоту в зависимости от того, насколько быстрой или медленной должна быть анимация
let duration = TimeInterval(imageView.frame.size.width / 100) // настройте длительность анимации в зависимости от размеров вашего изображения
  1. Вызовите функцию, которая выполнит анимацию с заданными параметрами:
performWaveAnimation(to: imageView, with: duration, amplitude: amplitude, frequency: frequency)

Теперь вы должны увидеть анимацию "Wave", которая соответствует размеру вашего изображения. Помимо этого, вы можете настроить другие параметры анимации, такие как цвет, начальную позицию и т. д., в зависимости от ваших потребностей.