如何在堆栈视图中隐藏元素

Noa*_*ino 2 ios stackview swift

我有4个单独的视图,并且我想在按下其中一个按钮时隐藏其他3个视图,我将它们放在堆栈视图中,但是由于.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)
        } 

    }
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

小智 9

将视图设置为隐藏应该使其不再可见,无论它是否在UIStackView.

这样做的好处UIStackView是它通过 isHidden 属性提供免费动画,如下所示:

// Assuming stackViewSubView.isHidden == false here
UIView.animate(withDuration: 0.25, animations: {
    self.stackViewSubView.isHidden = true
    self.view.layoutIfNeeded()
})
Run Code Online (Sandbox Code Playgroud)


Noa*_*ino 6

isHidden属性不起作用,但是您可以使用alpha并获得相同的结果,

QBIndicator.alpha = 1.0将为QBIndicator.isHidden = false并且 QBIndicator.alpha = 0.0将为QBIndicator.isHidden = true