How to set a background image in Xcode using swift? How to set a background image in Xcode using swift? ios ios

How to set a background image in Xcode using swift?


override func viewDidLoad() {    super.viewDidLoad()    self.view.backgroundColor = UIColor(patternImage: UIImage(named: "background.png"))}


I am beginner to iOS development so I would like to share whole info I got in this section.

First from image assets (images.xcassets) create image set .

According to Documentation here is all sizes need to create background image.

For iPhone 5:   640 x 1136   For iPhone 6:   750 x 1334 (@2x) for portrait   1334 x 750 (@2x) for landscape   For iPhone 6 Plus:   1242 x 2208 (@3x) for portrait   2208 x 1242 (@3x) for landscape   iPhone 4s (@2x)         640 x 960   iPad and iPad mini (@2x)    1536 x 2048 (portrait)   2048 x 1536 (landscape)   iPad 2 and iPad mini (@1x)   768 x 1024 (portrait)   1024 x 768 (landscape)   iPad Pro (@2x)   2048 x 2732 (portrait)   2732 x 2048 (landscape)

call the image background we can call image from image assets by using this method UIImage(named: "background") here is full code example

  override func viewDidLoad() {          super.viewDidLoad()             assignbackground()            // Do any additional setup after loading the view.        }  func assignbackground(){        let background = UIImage(named: "background")        var imageView : UIImageView!        imageView = UIImageView(frame: view.bounds)        imageView.contentMode =  UIViewContentMode.ScaleAspectFill        imageView.clipsToBounds = true        imageView.image = background        imageView.center = view.center        view.addSubview(imageView)        self.view.sendSubviewToBack(imageView)    }


override func viewDidLoad() {    let backgroundImage = UIImageView(frame: UIScreen.main.bounds)    backgroundImage.image = UIImage(named: "bg_image")    backgroundImage.contentMode = UIViewContentMode.scaleAspectfill    self.view.insertSubview(backgroundImage, at: 0)}

Updated at 20-May-2020:

The code snippet above doesn't work well after rotating the device. Here is the solution which can make the image stretch according to the screen size(after rotating):

class ViewController: UIViewController {    var imageView: UIImageView = {        let imageView = UIImageView(frame: .zero)        imageView.image = UIImage(named: "bg_image")        imageView.contentMode = .scaleToFill        imageView.translatesAutoresizingMaskIntoConstraints = false        return imageView    }()    override func viewDidLoad() {        super.viewDidLoad()        view.insertSubview(imageView, at: 0)        NSLayoutConstraint.activate([            imageView.topAnchor.constraint(equalTo: view.topAnchor),            imageView.leadingAnchor.constraint(equalTo: view.leadingAnchor),            imageView.trailingAnchor.constraint(equalTo: view.trailingAnchor),            imageView.bottomAnchor.constraint(equalTo: view.bottomAnchor)        ])    }}