故事板减少视图之间的差距
Storyboard reduce gap between views
我正在开发一个示例项目,其中包含三个视图,每个视图垂直间隔 10 storyboard.I 确实使用以下代码隐藏了第二个视图:
@IBOutlet var height:NSLayoutConstraint?
height?.constant = 0
view1 和 view3 之间的差距是 20。
如何将 view1 和 view3 之间的差距缩小到 10?
我鼓励您在这种情况下使用 UIStackView,因为它会做同样的事情。
使用间距为 10 的垂直 UIStackView。您可以通过 xib、情节提要或代码完成此操作。
示例:
let stackView = UIStackView(arrangedSubviews: [view, secondView, thirdView])
stackView.axis = .vertical
stackView.alignment = .fill
stackView.spacing = 10.0
如果您不想使用UIStackView
,您需要使用secondView
的constraints
。
为 secondView
创建 height, top, bottom
constraint
@IBOutlet
并为 show/hide 个案例更新它们,即
@IBOutlet weak var secondViewHeightConstraint: NSLayoutConstraint!
@IBOutlet weak var secondViewTopConstraint: NSLayoutConstraint!
@IBOutlet weak var secondBottomConstraint: NSLayoutConstraint!
func hideSecondView(_ hide: Bool) {
secondViewHeightConstraint.constant = hide ? 0 : 50 //used 50 as the height of secondView
secondViewTopConstraint.constant = hide ? 10 : 20
secondViewTopConstraint.constant = hide ? 10 : 20
UIView.animate(withDuration: 0.3) {
self.view.layoutIfNeeded()
}
}
我正在开发一个示例项目,其中包含三个视图,每个视图垂直间隔 10 storyboard.I 确实使用以下代码隐藏了第二个视图:
@IBOutlet var height:NSLayoutConstraint?
height?.constant = 0
view1 和 view3 之间的差距是 20。 如何将 view1 和 view3 之间的差距缩小到 10?
我鼓励您在这种情况下使用 UIStackView,因为它会做同样的事情。
使用间距为 10 的垂直 UIStackView。您可以通过 xib、情节提要或代码完成此操作。
示例:
let stackView = UIStackView(arrangedSubviews: [view, secondView, thirdView])
stackView.axis = .vertical
stackView.alignment = .fill
stackView.spacing = 10.0
如果您不想使用UIStackView
,您需要使用secondView
的constraints
。
为 secondView
创建 height, top, bottom
constraint
@IBOutlet
并为 show/hide 个案例更新它们,即
@IBOutlet weak var secondViewHeightConstraint: NSLayoutConstraint!
@IBOutlet weak var secondViewTopConstraint: NSLayoutConstraint!
@IBOutlet weak var secondBottomConstraint: NSLayoutConstraint!
func hideSecondView(_ hide: Bool) {
secondViewHeightConstraint.constant = hide ? 0 : 50 //used 50 as the height of secondView
secondViewTopConstraint.constant = hide ? 10 : 20
secondViewTopConstraint.constant = hide ? 10 : 20
UIView.animate(withDuration: 0.3) {
self.view.layoutIfNeeded()
}
}