使用CenterX约束

时间:2018-03-21 16:23:40

标签: ios swift

我的子视图以编程方式显示在其父视图中。我想将子视图的CenterXAnchor设置为约束父级的CenterXAnchor,但我希望子视图具有特定的高度和宽度。

childViewController.view.centerXAnchor.constraint(equalTo: 
    parentViewController.view.centerXAnchor)

我该怎么做呢?

我已经尝试为childViewController设置一个框架,但是它与锚点混淆。

3 个答案:

答案 0 :(得分:1)

您可以使用高度和宽度锚点将其设置为特定高度/宽度。它也可以是另一个视图的相对高度。

在你的例子中:

childViewController.view.heightAnchor.constraint(equalToConstant: 50)
childViewController.view.widthAnchor.constraint(equalToConstant: 50)

编辑:还记得使用' .isActive = true'激活约束。

这使您的视图的高度和宽度为50。

您可以在此处阅读更多内容:

https://developer.apple.com/documentation/uikit/uiview/1622590-heightanchor https://developer.apple.com/documentation/uikit/uiview/1622605-widthanchor

答案 1 :(得分:1)

概述

以下是一个示例,说明如何执行以下操作:

  • 添加子视图控制器
  • 子视图的设置约束(布局锚点)

代码

 $('form').submit((ev) => {
     ev.preventDefault();
 })

进一步阅读:

答案 2 :(得分:0)

请参阅示例代码

    //Intiallising Child ViewController
    let controller = UIViewController()
    controller.view.frame = CGRect.init(x: 0, y: 0, width: 150, height: 150)
    controller.view.backgroundColor = UIColor.red
    addChildViewController(controller)
    controller.didMove(toParentViewController: self)
    view.addSubview(controller.view)



    //Setting Constrains programattically
    controller.view.translatesAutoresizingMaskIntoConstraints = false
    let widthConstraint = NSLayoutConstraint(item: controller.view, attribute: .width, relatedBy: .equal,
                                             toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: 150)

    let heightConstraint = NSLayoutConstraint(item: controller.view, attribute: .height, relatedBy: .equal,
                                              toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: 150)

    let xConstraint = NSLayoutConstraint(item: controller.view, attribute: .centerX, relatedBy: .equal, toItem: self.view, attribute: .centerX, multiplier: 1, constant: 0)

    let yConstraint = NSLayoutConstraint(item: controller.view, attribute: .centerY, relatedBy: .equal, toItem: self.view, attribute: .centerY, multiplier: 1, constant: 0)

    NSLayoutConstraint.activate([widthConstraint, heightConstraint, xConstraint, yConstraint])**strong text**

示例输出 enter image description here