在iOS 11中,a中的隐藏动画的行为UIStackView已更改,但是我无法在任何地方找到该文档。
UIStackView
iOS 10
iOS 11
两者中的代码是这样的:
UIView.animate(withDuration: DiscoverHeaderView.animationDuration, delay: 0.0, usingSpringWithDamping: 0.9, initialSpringVelocity: 1, options: [], animations: { clear.isHidden = hideClear useMyLocation.isHidden = hideLocation }, completion: nil)
如何在iOS 11上还原以前的行为?
只是有同样的问题。该修复程序将添加stackView.layoutIfNeeded()到动画块中。stackView您要隐藏的物品的容器在哪里?
stackView.layoutIfNeeded()
stackView
UIView.animate(withDuration: DiscoverHeaderView.animationDuration, delay: 0.0, usingSpringWithDamping: 0.9, initialSpringVelocity: 1, options: [], animations: { clear.isHidden = hideClear useMyLocation.isHidden = hideLocation stackView.layoutIfNeeded() }, completion: nil)
不确定为什么这在iOS 11中突然成为一个问题,但公平地说,这一直是推荐的方法。