ios 版本之间的 UIStackView 不同显示隐藏动画
UIStackView different show hide animation between ios versions
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 模拟器上运行时动画是正确的。
但是在ios13中动画不正确。
那么有没有办法让这个动画和 ios10 上的一样呢?或者我应该使用 UITableView
而不是 UIStackView
?
您似乎忘记降低 view3 高度限制的优先级。
UIStackView 通过将高度限制为 0 来隐藏它的子视图,因此如果您对视图高度有其他限制,它们将与堆栈视图冲突。
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 模拟器上运行时动画是正确的。
但是在ios13中动画不正确。
那么有没有办法让这个动画和 ios10 上的一样呢?或者我应该使用 UITableView
而不是 UIStackView
?
您似乎忘记降低 view3 高度限制的优先级。
UIStackView 通过将高度限制为 0 来隐藏它的子视图,因此如果您对视图高度有其他限制,它们将与堆栈视图冲突。