如何使用自动布局(约束)将子视图添加到 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?的主要内容,如果未能解决你的问题,请参考以下文章
使用自动布局将子视图添加到 UITableView 不会设置其框架
以编程方式使用自动布局将子视图添加到 UICollectionView 不起作用
自动布局和编程约束:如何处理多次触发的 updateConstraints?