Высчитайте высоту uiview после анимации - PullRequest
0 голосов
/ 05 июля 2018

У меня есть анимация, которая изменяет ограничение UIView, и мне нужно знать размер этого UIView после анимации этого, но до начала анимации ...

раскадровки

Когда пользователь прокручивает UITableView, я обновляю heightConstraint черного UIView, мне нужна высота после обновления UIView, потому что мне нужна функция viewDidLayoutSubviews, чтобы зафиксировать высоту Yellow UIview.

это код, который я использую для анимации UIView:

self.headerIsCollapsed = true
self.heightProfilView.constant -= (self.view.bounds.height / 5)
UIView.animate(withDuration: 0.3, animations: {
   self.view.layoutIfNeeded()
   self.imageUserProfil.layer.opacity = 0
})

и мне нужно значение здесь:

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    heightTopBar.constant = // here i need the height of the UIView after animating this
}

Итак, вопрос: как я могу предварительно рассчитать высоту UIView после анимации этого?

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Попробуйте это:

self.headerIsCollapsed = true
//create this property at instance level in your viewcontroller class
self.heightBeforeAnimation = self.heightProfileView.frame.size.height
self.heightProfilView.constant -= (self.view.bounds.height / 5)
UIView.animate(withDuration: 0.3, animations: {
  self.view.layoutIfNeeded()
  self.imageUserProfil.layer.opacity = 0
}){ (isCompleted) in
    //create this property at instance level in your viewcontroller class
   self.heightAfterAnimation = self.heightProfileView.frame.size.height
}

и вызовите любую функцию и используйте значение двух переменных, содержащих значение высоты, до и после анимации вашего вида.

0 голосов
/ 05 июля 2018

Просто используйте блок завершения UIView.animate()

UIView.animate(withDuration: 0.3, animations: {
    self.view.layoutIfNeeded()
    self.imageUserProfil.layer.opacity = 0
}) { (finished) in
    // get the view's height after animation here
}

Если вы не указали продолжительность как 0, блок завершения будет выполняться после окончания последовательности анимации.

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