Я пытаюсь вставить следующий код в свой viewDidLoad
, и приложение показывает мне изображение в виде шаблона. Я пытаюсь найти способ разместить изображение на весь экран.
Я мало пробовал, потому что я новичок в Swift.
view.backgroundColor = UIColor(patternImage: UIImage(named: "GasBackground.png")!)
Рассмотрите возможность добавления UIImageView
в качестве подвида вашего корневого представления:
// Creating UIImageView, which holds an image
let imageView = UIImageView()
imageView.image = UIImage(named: "GasBackground.png")
imageView.contentMode = .scaleAspectFill
// Adding the image view to the view hierarchy
view.addSubview(imageView)
// Make image view to fit entire screen
imageView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
imageView.topAnchor.constraint(equalTo: view.topAnchor),
imageView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
imageView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
imageView.trailingAnchor.constraint(equalTo: view.trailingAnchor)
])
Затем вы должны добавить это перед добавлением других представлений. Таким образом, фоновый UIImageView останется за любым другим представлением, которое вы позже добавите.
НП. Вы также можете использовать view.sendSubviewToBack(imageView)
. Он также должен работать.
Дополнительное подпредставление и ограничения не нужны, поскольку у вашего ViewController уже есть представление — просто зайдите в конструктор интерфейса и измените класс вашего корневого представления на UIImageView, а затем в viewDidLoad
(view as? UIImageView)?.image = UIImage(named: "GasBackground.png")
Однако то, что вы предлагаете, возможно только при использовании построителя интерфейса. Хотел дать более общий ответ.
Ух ты! Большое спасибо за подробный ответ, человек, который работал безупречно. Моя единственная проблема в том, что все мои объекты, которые были размещены, теперь скрыты за фоном.