UIStackView
隐藏显示动画在ios版本之间非常不同。这是一个基本设置。我有一个UIStackView
,里面有三个排列的子视图。并且UIScrollView
包含UIStcakView
。我使用自动布局。堆栈视图代码是这样的:
let stack = UIStackView(arrangedSubviews: [view1, view2, view3])
stack.translatesAutoresizingMaskIntoConstraints = false
stack.axis = .vertical
stack.distribution = .fill
stack.alignment = .fill
制作动画的代码是这样的:
isHidden.toggle()
UIView.animate(withDuration: 2) {
self.view3.isHidden = self.isHidden
}
当它在ios 10模拟器上运行时,动画是正确的。
但是在ios 13中,动画不正确。
那么有没有办法像在ios10上那样制作这种动画?还是应该使用UITableView
代替UIStackView
?
答案 0 :(得分:2)
您似乎忘记了降低view3高度限制的优先级。
UIStackView通过将子视图的高度限制为0来隐藏子视图,因此,如果您对视图高度有其他限制,则它们将与堆栈视图冲突。