swift 3, iOS - 背景的 UIImageView

swift 3, iOS - UIImageView for background

我目前在 UIView 中有几个标签和按钮。我正在使用故事板,我想在背景中添加图像。我这样试过:

    override func viewDidLoad() {
    super.viewDidLoad()

    self.view.backgroundColor = UIColor(patternImage: UIImage(named:"background.png")!)

但不幸的是,这在较大的屏幕尺寸下看起来不正确。我认为我需要添加一个 UIImageView。当我添加一个 UIImageView 时,我不知道如何将它设置在后台以便我的按钮和标签仍然可见。

在你的故事板中:

1- 添加一个 UIImageView(在您的主视图内和其他所有视图之外)并将其图像设置为您想要的图像。

2- 正确设置其约束以填充屏幕(从所有方向给它 0)。

3- 在属性检查器中,将内容模式 属性 设置为适合纵横比。

let someImageView: UIImageView = {
    let theImageView = UIImageView()
    theImageView.image = UIImage(named: "yourImage.png")
    return theImageView
}()

override func viewDidLoad() {
    super.viewDidLoad()

    view.addSubview(someImageView) //This add it the view controller without constraints
}

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()

    someImageView.frame = view.bounds
}

我通过转到故事板中的面板并将 UIImageView 移动到包含标签和按钮的容器视图上方来解决了这个问题。 UIImageView 保留在 View 内,但移到了背景中(在按钮和标签下)。