2010-08-13 19 views
13

¿Cómo configuro la imagen de fondo de mi UIViewController? ¿Cuál es el código para hacerlo? En este momento tengoImagen de fondo UIViewController

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

pero no quiero un patrón. Quiero que llene la pantalla correctamente.

Respuesta

34

puede usar:

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

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

Apple HD image Guide

+1

El iPhone 4 es la resolución de 960 x 640 píxeles a 326 ppp según el sitio web de Apple. Cuando hago una imagen tan grande, es demasiado grande para un fondo cuando intento ponerla en mi teléfono usando ese código. ¿Cómo lo hago? Estoy tratando de crear un fondo de alta resolución para una de mis aplicaciones. – CodeGuy

+0

ahh. Intentaría leer la conversión de punto a píxel (hay una guía para esto en algún lugar). Personalmente, no estoy exactamente seguro de cómo funciona, pero ¿tendrías que ajustar el marco UIImageViews quizás? Personalmente, nunca he usado la resolución HD para iPhone4. –

+0

¿Qué quiere decir conversión de "puntos a píxel"? ¿Te importaría ayudarme a encontrar alguna guía sobre esto? – CodeGuy

1

Para ampliar el código de Jesse Naugher: UIView (o UIViewController, para el caso), ejerce ninguna manera integrada de la utilización de una imagen para el fondo. Lo que tienes que hacer es usar un UIImageView, que es una subclase de UIView específicamente para mostrar imágenes, y agregar eso al reverso de tu jerarquía de vistas.

+0

Gracias. Entiendo. ¿Tiene alguna sabiduría sobre el asunto que publiqué como comentario en el código de Jesse Naugher? – CodeGuy

5

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

Motivo: cada vista está respaldada por una clase CALayer. De acuerdo con la documentación en 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. 

Y sí, esta propiedad es animable. Esto significa que se pueden hacer agradables transiciones basadas en CoreAnimation en esta capa. Nota: tenga cuidado si admite múltiples orientaciones.

+1

Gracias por publicar esto, exactamente lo que estaba buscando. – Bradford2000

2

Una solución rápida para esto ...

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

Solución para Swift 3,0

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