Как я могу поместить изображение в качестве фона для всех XIB в моем приложении в качестве распространенного метода? - PullRequest
0 голосов
/ 21 мая 2018

Я хочу поместить фоновое изображение для всех XIB в моем приложении, но я не хочу использовать просмотр изображений во всех моих XIB.

Я хочу создать общий метод, в котором я могу использовать только один imageView и один выход.что может повлиять на все мои XIB, и если я изменю изображение этого imageView, то отразим и на всех XIB.

Как я могу это сделать?

Пожалуйста, оцените любой полезный ответ.

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Вы можете создать базовый контроллер, от которого наследуются все остальные контроллеры, но вы должны настроить фоновое изображение и обязательно отправить его обратно.

Код игровой площадки:

import UIKit
import PlaygroundSupport

class BackgroundedViewController: UIViewController {
    let backgroundImageView = UIImageView(image: UIImage(named: "bg"))

    override func viewDidLoad() {
        super.viewDidLoad()

        setupBackground()
    }

    private func setupBackground() {

        view.addSubview(backgroundImageView)
        backgroundImageView.contentMode = .scaleAspectFit
        backgroundImageView.translatesAutoresizingMaskIntoConstraints = false

        // fill the background.
        backgroundImageView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
        backgroundImageView.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
        backgroundImageView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
        backgroundImageView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true

        // keep this at the very back
        backgroundImageView.layer.zPosition = -1
    }
}

class VC: BackgroundedViewController {}

let vc = VC()
PlaygroundPage.current.liveView = vc
0 голосов
/ 21 мая 2018

Просто создайте BaseViewController С UIImageView фоном, который вы хотите

, затем сделайте все остальные Viewcontroller наследуемыми от него

BaseViewController:

class BaseViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()


        // add your Image View // with all constraints
        self.view.addSubview(UIImageView())
    }

}

Другие контроллеры View:

class ViewController: BaseViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

    }

} 
...