【发布时间】:2016-06-08 13:38:44
【问题描述】:
我有一个带有 5 个子视图的 UIStackView。我希望能够通过更新它们的intrinsicContentSize 或更新它们的约束来为这些子视图的宽度设置动画。更新子视图布局后如何使 stackView 重绘?
UIView.animateWithDuration(0.3, animations: {
viewToResize.compressed = true //changes intrinsicContentSize
viewToResize.invalidateIntrinsicContentSize()
self.stackView.layoutIfNeeded() //makes no difference
anotherSubview.hidden = true //adding this makes everything work
})
我尝试了各种方法来尝试更新 stackView,但没有任何反应。我可以让它工作的唯一方法是,如果我在动画块内显示/隐藏另一个子视图,那么新布局就会正确动画,但我不想这样做。
我看过这个问题 Animating UIStackView arrangedSubview content size change 但建议的答案不起作用(没有动画)。
【问题讨论】:
-
你试过 view.updateConstraints 吗?
-
是的,在stackView和subviews上,都没有任何作用。
标签: ios uistackview