注意:现在我都有编程设置的约束和情节提要约束。
如果同时保留程序设计和情节提要约束,则会在情节提要中出现错误,但该应用程序可以正常运行(我用编程性的条件替换了一些情节提要约束)。但是我可以吗?苹果会接受吗?
否则
我有一个ViewController,在其中放置了两个容器视图,每个视图具有不同的尺寸,以便创建一种侧面菜单。 我有一个和屏幕一样大的大屏幕,还有一个和屏幕一样长但只有屏幕一半的小屏幕。 最初,我在情节提要中添加了约束,但现在我意识到我需要以编程方式设置它们以实现所需。 我需要从情节提要转换为代码的约束是
大容器375x667:
小型集装箱240x667
高度等于大容器的高度;
在大容器上移动空间(如果我们已经设置了大容器的前导空间,则无需在此处再次添加空间);
对齐导致安全区域等于-240。
这是我已经做过的(正确的部分):
func containerViewsConstraints() {
containerView1.translatesAutoresizingMaskIntoConstraints = false
containerView1.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
containerView1.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
containerView2.translatesAutoresizingMaskIntoConstraints = false
containerView2.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
containerView2.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
}
这是我尝试过的方法(不确定是否正确):
containerView2.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
containerView2.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
containerView2.widthAnchor.isEqual(view.widthAnchor)
containerView2.heightAnchor.isEqual(view.heightAnchor)
containerView1.widthAnchor.constraint(equalToConstant: 240)
containerView1.heightAnchor.isEqual(view.heightAnchor)
答案 0 :(得分:0)
您需要
bigView.backgroundColor = .red
smallView.backgroundColor = .green
bigView.translatesAutoresizingMaskIntoConstraints = false
smallView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(bigView)
view.addSubview(smallView)
NSLayoutConstraint.activate([
bigView.topAnchor.constraint(equalTo: view.topAnchor),
bigView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
bigView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
bigView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
smallView.topAnchor.constraint(equalTo: view.topAnchor),
smallView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
smallView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
smallView.widthAnchor.constraint(equalTo: view.widthAnchor,multiplier:0.5)
])