Ограничение не равно высоте - PullRequest
0 голосов
/ 05 июля 2018

Я пишу следующий код:

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

Мой вопрос: почему значение двух print () не одинаково?

Мне нужно значение self.topUserProfilView.bounds.height Прежде чем анимировать это для другой функции, будет ли другой способ перехватить это значение раньше?

спасибо

Ответы [ 3 ]

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

попробуйте это: оно должно работать

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

PS: Это решение не будет работать, если вы добавите ограничение heightProfilView относительно любой высоты представления, так как здесь вы меняете постоянную, но в IB вы задали множитель, поэтому в этом случае значение константы по умолчанию равно 0. этот подход не будет работать для ограничения относительной высоты. так как мы не можем изменить множитель ограничения.

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

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

 UIView.animate(withDuration: 0.3, animations: {
        self.imageUserProfil.layer.opacity = 0
        self.view.layoutIfNeeded()
    }) { (isDone) in
        print(self.heightProfilView.constant)
        print(self.topUserProfilView.bounds.height)
    }

Надеюсь, это сработает.

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

Возможно, у вас есть ограничения, принимающие приоритет. Проверьте вывод консоли, когда вы свернете строку, должен быть какой-то громкий вывод с ограничениями.

Также попробуйте спрятаться imageUserProfil

self.imageUserProfil.layer.opacity = 0
self.imageUserProfil.isHidden = true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...