CGRect анимация масштабирования не работает в Xcode 10? - PullRequest
0 голосов
/ 03 июля 2019

Я следую руководству (которое использует ios 8, но я использую ios 12), которое учит меня анимировать, увеличивая изображение с помощью CGRect. Я следовал в точности, чтобы использовать функции переопределения viewDidLayoutSubviews и viewDidAppear, но мой симулятор не показывает увеличение размера изображения при открытии приложения.

    override func viewDidLayoutSubviews() {

        pandaImage.frame = CGRect(x: 100, y: 20, width: 0, height: 0)

    }

    override func viewDidAppear(_ animated: Bool) {

        UIView.animate(withDuration: 1, animations: { () -> Void in

            self.pandaImage.frame = CGRect(x: 5, y: 20, width: 400, height: 500)

        })

    }

Я хочу, чтобы изображение сначала было очень маленьким, а следовательно уменьшенным, поэтому ширина и высота должны быть равны 0. Затем, когда я открою приложение, размер изображения должен измениться до 400 по ширине и 500 по высоте. Фактические результаты таковы, что само изображение не отображается, и поэтому я получаю пустой интерфейс на симуляторе.

1 Ответ

1 голос
/ 03 июля 2019

Вы можете использовать CGAffineTransform для эффекта масштаба:

Анимация роста / уменьшения:

UIView.animate(withDuration: 1, animations: {
    self.pandaImage?.transform = CGAffineTransform(scaleX: 0.5, y: 0.5)
}) { (_ finished: Bool) in
    UIView.animate(withDuration: 1, animations: {
        self. pandaImage?.transform = CGAffineTransform(scaleX: 1, y: 1)
    })
}
...