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

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

1. Импортируйте библиотеки и фреймворки, необходимые для работы с анимациями и изображениями:

import UIKit
import CoreGraphics

2. Создайте функцию, которая будет выполнять анимацию "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")
}

3. Создайте экземпляр UIImageView и установите в него изображение, которое нужно анимировать:

let imageView = UIImageView(image: UIImage(named: "imageName"))

4. При необходимости, установите размеры imageView:

imageView.frame = CGRect(x: 0, y: 0, width: desiredWidth, height: desiredHeight)

5. Добавьте imageView на нужное вам представление (например, на UIViewController.view):

self.view.addSubview(imageView)

6. При необходимости, настройте параметры анимации (в нашем случае амплитуду и частоту):

let amplitude: CGFloat = imageView.frame.size.width / 10 // настройте амплитуду в зависимости от размеров вашего изображения
let frequency: CGFloat = 0.5 // настройте частоту в зависимости от того, насколько быстрой или медленной должна быть анимация
let duration = TimeInterval(imageView.frame.size.width / 100) // настройте длительность анимации в зависимости от размеров вашего изображения

7. Вызовите функцию, которая выполнит анимацию с заданными параметрами:

performWaveAnimation(to: imageView, with: duration, amplitude: amplitude, frequency: frequency)

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