Всегда ли нам нужно было сохранять анимацию в постоянном свойстве? - PullRequest
1 голос
/ 05 августа 2020

Сейчас читаю очень интересную книгу Мэтта Нойбурга. Но я остановился на этом моменте:

В простейшем случае вы просто запустите анимацию и отступите, как я продемонстрировал ранее:

let anim = UIViewPropertyAnimator(duration: 1, curve: .linear) {
    self.v.backgroundColor = .red    
}    
 anim.startAnimation()

В этом коде объект anim объекта UIViewPropertyAnimator создается как локальная переменная, и мы не сохраняем его в постоянном свойстве; однако анимация работает, потому что сервер анимации сохраняет ее.

Приходилось ли нам когда-либо сохранять анимацию в постоянном свойстве, когда мы использовали ее вышеупомянутым способом? Почему анимация (кажется, в других случаях) не должна работать, если мы не сохраняем ее в постоянном свойстве? Кажется, я чего-то не понимаю, кто еще читал эту книгу?

1 Ответ

2 голосов
/ 05 августа 2020

Мэтт считает, что вам не нужно сохранять ссылку на него для завершения анимации. Он не говорит, что вы не можете сохранить ссылку, только то, что вам не нужно.

Вы спрашиваете:

Нужно ли нам когда-нибудь сохранять анимацию в постоянном свойство, когда мы используем его [вышеупомянутым] способом?

Нет, вам не нужно «сохранять» его для продолжения анимации.

Вы можете спросить, почему вы могли сохраните ссылку: вы можете сделать это, если хотите приостановить или остановить ее, очистить или что-то еще, после того, как анимация уже началась.

Нижняя строка, если вам нужна ссылка по другим причинам, хорошо , держите ссылку на него. В противном случае, сделать ее локальной переменной и запустить ее - это все, что вам нужно сделать.

Почему анимация (кажется, в других случаях) не должна работать, если мы не сохраняем ее в постоянном свойстве?

Он не это говорит. Он говорит прямо противоположное, а именно, что для продолжения анимации не нужно постоянно ссылаться на него. Сохраните ссылку, если она вам нужна по другим причинам, а не просто для продолжения анимации.

...