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) ]) }}