我有一个名为containerView
的 UIView ,其中包含视图中的所有UI元素。首先要制作containerView
的原因是因为我想为屏幕尺寸较小的设备实现键盘支持,而我无法将self.view
嵌入到 UISCrollView中。
当我在containerView
上设置约束时,我会这样做:
NSLayoutConstraint.activate([
containerView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
containerView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor),
containerView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor),
containerView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor),
/* constraints of containerView's subviews */
}
由于我将containerView
的所有四个锚定约束为view
,因此我很想知道是否有一种更简单的方法(也许是单线?)可以实现这一目标。 / p>
答案 0 :(得分:0)
使用内置方法,我相信这将是最短的方法。
let views = ["contentView": contentView]
NSLayoutConstraint.activate(NSLayoutConstraint.constraints(withVisualFormat: "|-[contentView]-|", views: views))
NSLayoutConstraint.activate(NSLayoutConstraint.constraints(withVisualFormat: "V:|-[contentView]-|", views: views))
但这是您经常执行的操作,创建一个可以调用的扩展名是更好的选择。