Я пытаюсь анимировать UIView на игровой площадке, используя animate(withDuration:animations:)
.Цель состоит в том, чтобы переместить представление вниз, а затем переместить его вправо и одновременно увеличить его.
Итак, я делаю это в два этапа, вызывая вторую анимацию после завершения первой.
Вот 3 преобразования, которые я собираюсь применить к своему представлению
let scaleUp = CGAffineTransform(scaleX: 2, y: 2)
let moveDown = CGAffineTransform(translationX: 0, y: 100)
let moveRight = CGAffineTransform(translationX: 100, y: 0)
Чтобы сделать moveDown
с последующим moveRight
Я соединяю второе с первым.
UIView.animate(withDuration: 2, animations: {
circleView.transform = moveDown
}) { _ in
//First animation completed
UIView.animate(withDuration: 4, animations: {
circleView.transform = moveDown.concatenating(moveRight)
})
}
`
Теперь, когда я пытаюсь увеличить масштаб при перемещении вправо, кажется, что он применяет масштабирование к уже преобразованному виду, чтоприводит к сдвигу всего (2 раза) до начала второй анимации.
UIView.animate(withDuration: 2, animations: {
circleView.transform = moveDown
}) { _ in
//First animation completed
UIView.animate(withDuration: 2, animations: {
circleView.transform = moveDown.concatenating(scaleUp.concatenating(moveRight))
})
}
Как мне добиться перемещения вправо + масштабировать вверх без сбросамое первоначальное преобразование?