2010-08-13 8 views
13

Wie lege ich das Hintergrundbild meines UIViewControllers fest? Was ist der Code dafür? Jetzt habe ichUIViewController Hintergrund Image

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"image.jpg"]]; 

aber ich will kein Muster. Ich möchte, dass es den Bildschirm richtig ausfüllt.

Antwort

34

Sie nutzen könnten:

UIImageView *backgroundImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Blah.png"]]; 

[self.view addSubview:backgroundImage]; 
[self.view sendSubviewToBack:backgroundImage]; 
[backgroundImage release]; 

Apple HD image Guide

+1

Das iPhone 4 ist 960-by-640-Pixel-Auflösung bei 326 ppi nach Apple-Website. Wenn ich ein Bild so groß mache, ist es für einen Hintergrund viel zu groß, wenn ich versuche, es mit diesem Code auf mein Handy zu legen. Wie mache ich es fit? Ich versuche, einen Hintergrund mit hoher Auflösung für eine meiner Anwendungen zu erstellen. – CodeGuy

+0

ahh. Ich würde versuchen, auf den Punkt zu Pixel-Konvertierung zu lesen (es gibt eine Richtlinie dazu irgendwo). Ich persönlich bin mir nicht ganz sicher, wie es funktioniert, aber Sie müssten nur den UIImageViews Rahmen vielleicht anpassen? Ich persönlich habe nie die HD-Auflösung für iPhone4 verwendet. –

+0

Was meinen Sie "Punkte zu Pixel" Konvertierung? Würde es Ihnen etwas ausmachen, mir dabei zu helfen, einen Leitfaden zu finden? – CodeGuy

1

auf Code des Jesse Naugher zu erweitern: UIView (oder UIViewController, was das betrifft), hält keine integrierte Möglichkeit, ein Bild für den Hintergrund zu verwenden. Sie müssen eine UIImageView verwenden, bei der es sich um eine UIView-Unterklasse handelt, die speziell für die Anzeige von Bildern verwendet wird, und diese zur Rückseite Ihrer Ansichtshierarchie hinzufügen.

+0

Danke. Ich verstehe. Hast du irgendeine Weisheit in der Sache, die ich als Kommentar zu Jesse Naughers Code gepostet habe? – CodeGuy

5

self.view.layer.contents = (id) [UIImage imageNamed: @ "background.png"]. CGImage;

Grund: Jede Ansicht wird von einer CALayer-Klasse unterstützt. Laut Dokumentation auf CALayer:

 
contents 
An object that provides the contents of the layer. Animatable. 


@property(retain) id contents 
 
Discussion 
A layer can set this property to a CGImageRef to display the image as its contents. The default value is nil. 

Und ja, diese Eigenschaft ist animierbar. Dies bedeutet, dass nette Übergänge basierend auf CoreAnimation auf dieser Ebene durchgeführt werden können. Hinweis: Seien Sie vorsichtig, wenn Sie mehrere Ausrichtungen unterstützen.

+1

Danke für das Posten, genau das, was ich gesucht habe. – Bradford2000

2

Eine schnelle Lösung für dieses ...

let backgroundImageView = UIImageView(image: UIImage(named: "backgroundImage")) 
backgroundImageView.frame = view.frame 
backgroundImageView.contentMode = .ScaleAspectFill 
view.addSubview(backgroundImageView) 
view.sendSubviewToBack(backgroundImageView) 
1

Lösung für Swift 3,0

self.view.backgroundColor = UIColor(patternImage: UIImage(named: "home02.png")!)