如何在堆栈视图中隐藏元素
How to hide elements in a Stack View
我有 4 个单独的视图,我想在按下其中一个按钮时隐藏另外 3 个视图。
我将它们放在 UIStackView 中,但 .isHidden = true
出于某种原因没有隐藏视图。
当它们不在堆栈视图中时它工作正常。
@IBAction func qbpressed(_ sender: Any) {
QBContainer.isHidden = false
WRContainer.isHidden = true
RBContainer.isHidden = true
QBIndicator.isHidden = false
WRIndicator.isHidden = true
RBIndicator.isHidden = true
TEIndicator.isHidden = true
QBButton.setTitleColor(#colorLiteral(red: 0, green: 0.5008062124, blue: 1, alpha: 1), for: .normal)
WRButton.setTitleColor(#colorLiteral(red: 0.7540688515, green: 0.7540867925, blue: 0.7540771365, alpha: 1), for: .normal)
RBButton.setTitleColor(#colorLiteral(red: 0.7540688515, green: 0.7540867925, blue: 0.7540771365, alpha: 1), for: .normal)
TEButton.setTitleColor(#colorLiteral(red: 0.7540688515, green: 0.7540867925, blue: 0.7540771365, alpha: 1), for: .normal)
if intersitial.isReady{
intersitial.present(fromRootViewController: self)
}
}
将视图设置为隐藏应该使其不再可见,无论它是否在 UIStackView
.
中
UIStackView
的好处是它通过 isHidden 属性 提供免费动画,像这样:
// Assuming stackViewSubView.isHidden == false here
UIView.animate(withDuration: 0.25, animations: {
self.stackViewSubView.isHidden = true
self.view.layoutIfNeeded()
})
isHidden 属性 不起作用,但您可以使用 alpha 并获得相同的结果,
QBIndicator.alpha = 1.0
将适用于 QBIndicator.isHidden = false
和
QBIndicator.alpha = 0.0
将适用于 QBIndicator.isHidden = true
我有 4 个单独的视图,我想在按下其中一个按钮时隐藏另外 3 个视图。
我将它们放在 UIStackView 中,但 .isHidden = true
出于某种原因没有隐藏视图。
当它们不在堆栈视图中时它工作正常。
@IBAction func qbpressed(_ sender: Any) {
QBContainer.isHidden = false
WRContainer.isHidden = true
RBContainer.isHidden = true
QBIndicator.isHidden = false
WRIndicator.isHidden = true
RBIndicator.isHidden = true
TEIndicator.isHidden = true
QBButton.setTitleColor(#colorLiteral(red: 0, green: 0.5008062124, blue: 1, alpha: 1), for: .normal)
WRButton.setTitleColor(#colorLiteral(red: 0.7540688515, green: 0.7540867925, blue: 0.7540771365, alpha: 1), for: .normal)
RBButton.setTitleColor(#colorLiteral(red: 0.7540688515, green: 0.7540867925, blue: 0.7540771365, alpha: 1), for: .normal)
TEButton.setTitleColor(#colorLiteral(red: 0.7540688515, green: 0.7540867925, blue: 0.7540771365, alpha: 1), for: .normal)
if intersitial.isReady{
intersitial.present(fromRootViewController: self)
}
}
将视图设置为隐藏应该使其不再可见,无论它是否在 UIStackView
.
UIStackView
的好处是它通过 isHidden 属性 提供免费动画,像这样:
// Assuming stackViewSubView.isHidden == false here
UIView.animate(withDuration: 0.25, animations: {
self.stackViewSubView.isHidden = true
self.view.layoutIfNeeded()
})
isHidden 属性 不起作用,但您可以使用 alpha 并获得相同的结果,
QBIndicator.alpha = 1.0
将适用于 QBIndicator.isHidden = false
和
QBIndicator.alpha = 0.0
将适用于 QBIndicator.isHidden = true