在xib中使用UIStackview
,隐藏和显示 subview 问题
我的StackView
有两个 subview ,A subview 隐藏,B subview 不隐藏,A在B上面;设置A的状态显示,但是A被B覆盖。
仅出现在Xcode10.1和ios12.0++中。
最佳答案
我想知道为什么它只发生在你身上..!!但是,我尝试了与您在问题中指定的方式相同的方式并完美地得到了结果。
代码:
override func viewDidLoad() {
super.viewDidLoad()
let myStackView = UIStackView()
myStackView.axis = .vertical
myStackView.alignment = .center
myStackView.distribution = .fillEqually
myStackView.spacing = 8
view.addSubview(myStackView)
let redView = UIView()
redView.backgroundColor = UIColor.red
redView.widthAnchor.constraint(equalToConstant: 125.0).isActive = true
redView.heightAnchor.constraint(equalToConstant: 50).isActive = true
let greenView = UIView()
greenView.backgroundColor = UIColor.green
greenView.widthAnchor.constraint(equalToConstant: 125.0).isActive = true
greenView.heightAnchor.constraint(equalToConstant: 50).isActive = true
myStackView.addArrangedSubview(redView)
myStackView.addArrangedSubview(greenView)
myStackView.translatesAutoresizingMaskIntoConstraints = false
myStackView.centerXAnchor.constraint(equalTo: view.centerXAnchor, constant: 0.0).isActive = true
myStackView.centerYAnchor.constraint(equalTo: view.centerYAnchor, constant: 0.0).isActive = true
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
redView.isHidden = true
}
DispatchQueue.main.asyncAfter(deadline: .now() + 4) {
redView.isHidden = false
}
}
截图:
在 viewDidLoad
上以及在 viewDidLoad
的 4 秒 之后
2 秒 viewDidLoad
之后
关于ios - 在xib中使用UIStackview,隐藏和显示 subview 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53956723/