2014-11-20 5 views
23

Jak ustawić obraz tła dla głównego kontrolera widoku w Xcode 6 za pomocą Swift? Wiem, że można to zrobić w asystent montażysty jak poniżej:Jak ustawić obraz tła w Xcode za pomocą Swift?

Override func viewDidLoad() { 
     super.viewDidLoad() 
     self.view.backgroundColor = UIColor.yellowColor() 
} 

Co to jest kod, aby ustawić tło do obrazu mam w folderze mojego majątku?

+0

Szukasz [UIColor.colorWithPatternImage] (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIColor_Class/index.html#// apple_ref/occ/clm/UIColor/colorWithPatternImage :)? Więcej o obrazie tła dla UIView [tutaj] (http://beageek.biz/how-to-set-background-image-uiview/) – Xenyal

Odpowiedz

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

    let backgroundImage = UIImageView(frame: UIScreen.main.bounds) 
    backgroundImage.image = UIImage(named: "bg_image") 
    self.view.insertSubview(backgroundImage, at: 0) 

} 
+0

To działało dla mnie, jednak od 2017 roku, UIScreen.mainScreen(). jest teraz UIScreen.main.bounds i self.view.insertSubview (backgroundImage, atIndex: 0) jest self.view.insertSubView (backgroundImage, at: 0) – jffgrdnr

28

Jestem początkujący do rozwoju iOS więc chciałbym podzielić cały informacje uzyskałem w tej sekcji.

Najpierw z zasobów obrazu (images.xcassets) utwórz zestaw obrazów.

Zgodnie z Documentation tutaj są wszystkie rozmiary potrzebne do stworzenia obrazu tła.

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) 

wezwanie obraz tło możemy wywołać obraz z trwałych obrazów za pomocą tej metody UIImage(named: "background") Oto przykład pełny kod

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) 
    } 
+1

Świetna odpowiedź! Dzięki ! – Zl3n

11

Można spróbować, jak również, co jest naprawdę kombinacja poprzednie odpowiedzi od innych plakaty tutaj:

let backgroundImage = UIImageView(frame: UIScreen.main.bounds) 
    backgroundImage.image = UIImage(named: "RubberMat") 
    backgroundImage.contentMode = UIViewContentMode.scaleAspectFill 
    self.view.insertSubview(backgroundImage, at: 0) 
1
view.layer.contents = #imageLiteral(resourceName: "webbg").cgImage 
3

Dla Swift 4

let backgroundImage = UIImageView(frame: UIScreen.main.bounds) 
backgroundImage.image = UIImage(named: "bg_name.png") 
backgroundImage.contentMode = UIViewContentMode.scaleAspectFill 
self.view.insertSubview(backgroundImage, at: 0)