隐藏Horizontal StackView中子视图后出现多余空白如何解决
解决Horizontal StackView隐藏视图后出现多余空白的问题
检查被隐藏视图的固有内容尺寸:如果
secondView本身带有非零的固有宽度,即便隐藏后,StackView仍可能为其预留空间。可以在隐藏时同时将其宽度设为0:secondView.isHidden = true secondView.widthAnchor.constraint(equalToConstant: 0).isActive = true stackView.layoutIfNeeded()确认StackView的Distribution属性:将StackView的
distribution设置为.fill或.fillEqually(根据需求选择),避免使用.equalSpacing或.equalCentering——这两种模式在子视图隐藏后会自动分配空白空间。可在Xcode的属性检查器中修改,或通过代码设置:stackView.distribution = .fill排查子视图约束冲突:确保三个UIView没有额外的固定宽度约束或优先级冲突,尽量让StackView主导子视图的宽度布局。
可选方案:若无需再次显示被隐藏的视图,可直接将其从StackView中移除,StackView会自动重新布局剩余视图:
secondView.removeFromSuperview()
内容的提问来源于stack exchange,提问作者es1
相关产品推荐
相关产品推荐

