Что на самом деле происходит при анимации начала границ представления контроллера представления? - PullRequest
0 голосов
/ 05 мая 2020

Если я анимирую начало границ представления контроллера представления:

UIView.animate(withDuration: 1) {
    self.view.bounds.origin.y = 20
}

все его подпредставления анимируются вверх на 20 пунктов. Но я думал, что просто переместил начало границ вниз на 20 пунктов, так почему бы подпредставлениям не сдвинуться вниз на 20? Что на самом деле происходит, когда я выполняю эту анимацию?

Или это просто то, что в системе координат границ положительное значение направлено вверх?

1 Ответ

1 голос
/ 05 мая 2020

Я полагаю, вы можете спутать bounds представления с frame представления.

Но я думал, что просто переместил начало границ на 20 пунктов, так почему же 'Разве подпредставления не сдвинутся вниз на 20?

Нет, если вы переместите frame (где это представление находится в системе координат своего супервизора) вниз на 20, тогда оно (и его подпредставления) будут go вниз 20. Но вы настроили bounds, а не frame.

Что на самом деле происходит, когда я выполняю эту анимацию?

Чтобы сделать это немного легче увидеть, я дам рассматриваемому представлению собственный цвет фона, чтобы вы могли видеть представление относительно его подвидов. Ниже я сместил границы на 50 пунктов. Изменяя origin в bounds с 0, 0 на 0, 50, мы говорим: «Верхний левый угол собственной системы координат этого представления больше не 0, 0, а скорее 0, 50», тем самым сдвигая все его подпредставления вверх на 50:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...