覆盖UIStackView的间距

Ben*_*ard 7 ios autolayout uistackview

我经常发现a UIStackView对于特定的布局是完美的,除了我需要在排列的子视图之间有一些可变间距.UIStackView使用其spacing属性沿轴排列视图,但有没有办法覆盖这些?例如,我希望能够使用可视化格式添加单个手动约束来定义所需的间隙,并以某种方式取消对堆栈视图的优先级.

UIStackView当然,我可以完全放弃,但是堆栈在隐藏子视图之间返回空间的能力非常难以手动复制(例如,根据隐藏的视图添加和删除约束).我还尝试将各个子视图包装在他们自己的堆栈视图中,以便我可以使用堆栈layoutMargins添加顶部边距.但是这就要求除了它包含(令人惊讶的子视图的管理封装堆叠自己隐藏状态-我-一个UIStackView他们arrangedSubviews都是隐藏的,不会自动隐藏自身,所以不会产生其间距和边距回到自己的上海华).

bar*_*mes 4

从 iOS 11 开始,可以使用:

stackView.setCustomSpacing(spacing: CGFloat, after: UIView)
Run Code Online (Sandbox Code Playgroud)