Sobes.tech
Middle+

Wie erhält man den aktuellen Wert des Frames, wenn man Änderungen an der Animation zu einer bestimmten Sekunde vornimmt?

sobes.tech KI

Antwort von AI

Используя presentationLayer слоя.

import QuartzCore

let myView: UIView // Предположим, это анимируемая вью

// Получаем презентационный слой
if let presentationLayer = myView.layer.presentation() {
    // Извлекаем frame из презентационного слоя
    let currentAnimatedFrame = presentationLayer.frame
    // Используем currentAnimatedFrame для дальнейших операций
    print("Текущий анимированный frame: \(currentAnimatedFrame)")
} else {
    // Если презентационного слоя нет (например, анимация не запущена)
    let currentFrame = myView.frame
    print("Анимация не запущена, используем текущий frame: \(currentFrame)")
}

Презентационный слой (presentationLayer) отражает фактическое положение и состояние свойства в данный момент времени во время исполнения анимации, тогда как основной слой (layer или modelLayer) содержит конечное значение свойства после завершения анимации.