如何使用自动布局(约束)将子视图添加到 UIPageViewController?

Posted

技术标签:

【中文标题】如何使用自动布局(约束)将子视图添加到 UIPageViewController?【英文标题】:How add subviews to UIPageViewController with autolayout ( constraints)? 【发布时间】:2018-08-21 10:02:37 【问题描述】:

我尝试将 UIImageView 添加到 UIPageVC 背景视图,但它将作为子视图,因为它会通过约束进行自动布局。

我试图在 UIPageViewController 类中做这样的事情:

override func viewDidLoad() 
    super.viewDidLoad()
    dataSource = self
    delegate = self

    // Adding an UIImageView to background

    let imageView = UIImageView(image: UIImage(named: "backgoundImage"))
    imageView!.contentMode = .scaleToFill
    view.insertSubview(imageView!, at: 0)

感谢所有回答!

【问题讨论】:

【参考方案1】:

您需要对广告限制执行类似操作。

if let imageView = UIImageView(image: UIImage(named: "backgoundImage")) 
  imageView.contentMode = .scaleToFill
  view.insertSubview(imageView, at: 0)

  imageView.translatesAutoresizingMaskIntoConstraints = false

  imageView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0).isActive = true
  imageView.topAnchor.constraint(equalTo: view.topAnchor, constant: 0).isActive = true
  imageView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0).isActive = true
  imageView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0).isActive = true

【讨论】:

self.view添加任何约束时出现问题我会收到此错误消息并将其添加到问题中,但感谢您的回答,我会尝试使用它! 是的,它有效。谢谢!但是if if let imageView = UIImageView(image: UIImage(named: "backgoundImage"))中没有可选值,我把这个改成let imageView = UIImageView(image: UIImage(named: "backgroundView")) @GolovanovDmitrii 其实应该是UIImage(named: "backgoundImage") 我做 if 块像:if let image = UIImage(named: "backgroundView")

以上是关于如何使用自动布局(约束)将子视图添加到 UIPageViewController?的主要内容,如果未能解决你的问题,请参考以下文章