故事板减少视图之间的差距
Posted
技术标签:
【中文标题】故事板减少视图之间的差距【英文标题】:Storyboard reduce gap between views 【发布时间】:2019-08-09 09:30:04 【问题描述】:我正在开发一个示例项目,该项目具有三个视图,在情节提要中每个间隙垂直 10。我确实使用以下代码隐藏了第二个视图:
@IBOutlet var height:NSLayoutConstraint?
height?.constant = 0
view1 和 view3 之间的差距是 20。 如何将 view1 和 view3 之间的差距缩小到 10?
【问题讨论】:
请显示您正在使用的代码...另外,您是否使用 UIStackView 这将免费发生。 我没有使用 UIStackview 我知道。我可以从您显示的代码的 sn-p 中看出。这就是为什么我建议使用 UIStackView。它使这更容易。 【参考方案1】:我鼓励你在这种情况下使用UIStackView,因为它会做你想做的事情。
用户垂直 UIStackView 间距为 10。您可以通过 xib、情节提要或代码来完成此操作。
例子:
let stackView = UIStackView(arrangedSubviews: [view, secondView, thirdView])
stackView.axis = .vertical
stackView.alignment = .fill
stackView.spacing = 10.0
【讨论】:
知道如何在没有 UIStackview 的情况下处理它吗? @karthi 如果 UIStackView 更易于使用且易于管理,那么使用它有什么问题? 我必须在一个没有 UIStackview 的项目中解决这个问题 @karthi 使用堆栈视图修复它。 ? 您可以使用堆栈视图轻松修复它。只需将视图嵌入堆栈视图和堆栈视图的约束【参考方案2】:如果您不想使用UIStackView
,则需要使用secondView
的constraints
。
为secondView
创建height, top, bottom
constraint
@IBOutlet
并更新它们以显示/隐藏案例,即
@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()
【讨论】:
以上是关于故事板减少视图之间的差距的主要内容,如果未能解决你的问题,请参考以下文章