Здесь следует отметить, что ограничение width
или height
установлено на 0
(точно также включает 0.1
), и то же самое скрыто.
Тогда вам нужноустановите ограничение height
, которое будет больше, чем 0.1
foldConstraint = imagen.heightAnchor.constraint(equalToConstant: 0)
Замените на это, временно установите значение 1
foldConstraint = imagen.heightAnchor.constraint(equalToConstant: 1)
Скрыть его в конце анимации
self.folded = !self.folded
if self.folded {
self.foldConstraint.isActive = true
UIView.animate(withDuration: 1, animations: {
self.imagen.setNeedsLayout()
self.imagen.superview?.layoutIfNeeded()
}) { (completion) in
self.imagen.isHidden = true
}
} else {
self.imagen.isHidden = false
self.foldConstraint.isActive = false
UIView.animate(withDuration: 1, animations: {
self.imagen.setNeedsLayout()
self.imagen.superview?.layoutIfNeeded()
})
}
Обновление:
scaleAspectFill
не подходит для анимации, его следует установить на scaleAspectFit
let imagen = UIImageView(contentMode: .scaleAspectFit, image: #imageLiteral(resourceName: "gpointbutton"))