Ответ
Да, это возможно с помощью инструментов Xcode.
1. Debug View Hierarchy (Визуальная инспекция): Нажмите Cmd + Shift + D во время выполнения анимации. Этот инструмент "заморозит" интерфейс и покажет иерархию представлений в их текущем, промежуточном состоянии.
2. Использование LLDB для доступа к слою презентации: Во время паузы на точке останова (breakpoint) можно запросить у Core Animation текущие кадры анимации.
-
Каждое анимируемое свойство (
frame,opacity,transform) имеет два слоя:model layer— конечное значение анимации.presentation layer— текущее значение на экране.
Команды в консоли LLDB:
// Получить текущий frame анимируемого view (lldb) po myView.layer.presentation()?.frame // Проверить, анимируется ли свойство прямо сейчас (lldb) po myView.layer.animationKeys()
3. Практический пример в коде:
UIView.animate(withDuration: 2.0) {
myView.center.y += 200
}
// Установите точку останова здесь и через 1 секунду выполните в LLDB:
// (lldb) po myView.layer.presentation()?.frame
// Вы увидите промежуточное значение Y (например, ~100).
4. Отладка через кнопку паузы (Pause): Просто нажмите кнопку Pause в дебаггере Xcode во время анимации — выполнение прервется, и вы сможете исследовать состояние.