ios - 为具有 CenterX 约束的 View 设置自定义高度

标签 ios swift

我有一个 subview 以编程方式由其父 View 呈现。我想将 subview 的 CenterXAnchor 设置为受限于父 View 的 CenterXAnchor,但我希望 subview 具有特定的高度和宽度。

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

我该怎么做呢?

我曾尝试为 childViewController 设置一个框架,但这会弄乱 anchor 。

最佳答案

概览

下面给出的示例展示了如何执行以下操作:

  • 添加一个 subview Controller
  • 为 subview 设置约束(布局 anchor )

代码

private func showChildView() {

    let childViewController = UIViewController()
    let parentViewController = self

    childViewController.view.backgroundColor = .brown


    parentViewController.addChildViewController(childViewController)

    let parentView = parentViewController.view!
    let childView = childViewController.view!

    //For programatically created view set the translatesAutoresizingMaskIntoConstraints = false
    childView.translatesAutoresizingMaskIntoConstraints = false

    parentView.addSubview(childView)

    childView.centerXAnchor.constraint(equalTo: parentView.centerXAnchor).isActive = true
    childView.centerYAnchor.constraint(equalTo: parentView.centerYAnchor).isActive = true
    childView.widthAnchor.constraint(equalToConstant: 100).isActive = true
    childView.heightAnchor.constraint(equalToConstant: 200).isActive = true

    childViewController.didMove(toParentViewController: parentViewController)
}

进一步阅读:

关于ios - 为具有 CenterX 约束的 View 设置自定义高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49411658/

相关文章:

ios - ViewController 嵌入为 UITabBarController 时如何向导航栏添加按钮

ios - UIDocumentInteractionController 支持横向和纵向

ios - 如何在 iOS 10.1.1 中读取电话号码 - Objective C/Swift

ios - 后台计时器非常慢

ios - 资源包中的 Xib 仅针对小屏幕编译

ios - WKWebView 不显示导航栏

ios - 一个 UITableView Swift 中的 2 个自定义 UITableViewCell

ios - Swift 工具栏/导航栏

ios - 修改常量值

iphone - 在 iOS 中使用 Core Data 进行数据加密