Как мне написать анимацию постепенного появления UIView для BringSubviewToFront?

Я пытаюсь добавить эффект анимации/затухания UIView к своей функции: self.view.bringSubview(toFront: self.webView)

Я пытался реализовать его программно, но UIView не анимируется; вместо этого он просто показывает это сразу без эффекта постепенного появления:

UIView.animate(withDuration: 1, animations: {
            self.view.bringSubview(toFront: self.webView)
        }, completion: nil)

Как мне реализовать анимацию для функций bringSubview(_: ) и sendSubview(_ : )? Я пытался искать везде, но никто, кажется, не имеет ответа.


person Justin Bush    schedule 28.08.2018    source источник


Ответы (1)


Вы не можете использовать UIView.animate таким образом. Он работает только с определенными свойствами. В этом случае вам нужно анимировать свойство alpha.

Прежде чем начать анимацию, установите alpha вида на 0, а затем переместите его на передний план:

self.webView.alpha = 0
self.view.bringSubview(toFront: self.webView)
// After that you animate the alpha:
UIView.animate(withDuration: 1, animations: {
    self.webView.alpha = 1
}, completion: nil)
person Sweeper    schedule 28.08.2018