添加以下底部约束并将常量设置为-100似乎完全相反,而不是在故事板中的约束中添加该常量。
具体来说,这会将视图推到控制器底部上方100个单位,而预期的行为是使其低100个单位。我很可能犯了一个非常愚蠢的错误,但我现在无法看到它。
func setUp(parentController: UIViewController){
self.parentController = parentController;
self.translatesAutoresizingMaskIntoConstraints = false
self.leftAnchor.constraint(equalTo: parentController.view.leftAnchor).isActive = true
self.rightAnchor.constraint(equalTo: parentController.view.rightAnchor).isActive = true
self.heightAnchor.constraint(equalToConstant: pullUpViewHeight).isActive = true
self.pullUpViewBottomCSTR = self.bottomAnchor.constraint(equalTo: parentController.view.bottomAnchor)
self.pullUpViewBottomCSTR!.isActive = true;
self.pullUpViewBottomCSTR!.constant = -100
}
感谢您抽出宝贵时间。
答案 0 :(得分:1)
它总是取决于参与的视图'/锚'的顺序。在设置约束时切换parentController.view.bottomAnchor
和self.bottomAnchor
并且你很好(因为你想要实现的是parentController
视图的底部等于视图的底部减去100分)。
self.pullUpViewBottomCSTR = parentController.view.bottomAnchor.constraint(equalTo: self.bottomAnchor)
您可以在创建约束btw时立即设置常量:
self.pullUpViewBottomCSTR = parentController.view.bottomAnchor.constraint(equalTo: self.bottomAnchor, constant: -100)
答案 1 :(得分:0)
如果我在写约束时交换视图,那总是让我感到困惑。答案是,有时它很重要,有时它并不重要。
一般来说:
想象一下,你有ViewA& ViewB,您可以使用 0
在它们之间设置约束。它们粘在一起。对于这种情况,约束视图的顺序并不重要。
ViewA& ViewB,您可以使用 20
在它们之间设置约束。他们不粘在一起。它们之间有一些空间。您是否希望ViewA站稳并移动/推动ViewB,或者您希望ViewB站稳脚跟并使ViewA移动?因此,您需要将约束添加到其中。
如果它第一次没有工作,那么我只需切换约束并将其添加到另一个视图上,然后就可以了。