2012-01-04 27 views
6

Tengo un archivo XIB con elementos UIControl y UIScrollView dentro de él. Me gustaría agregar una imagen de fondo a la vista. Intenté agregar un ImageView en IB, pero no pude conseguir que estuviera presente como fondo y oscureció los elementos de control. El envío de un mensaje sendViewBack tampoco parece hacer nada.Establecer imagen de fondo mediante programación en un Xib

Cuando creo un UIImageView programáticamente, no aparece.

A continuación se muestra el código intenté:

Creación programática

UIImage *imageBackground = [UIImage imageWithContentsOfFile:@"globalbackground"]; 

UIImageView *backgroundView = [[UIImageView alloc] initWithImage:imageBackground]; 

[[self view] addSubview:backgroundView]; 

[[self view] sendSubviewToBack:backgroundView]; 

Tratar con el archivo SEMILLA

[[self view] sendSubviewToBack:background]; 

donde el fondo es un IBOutlet declarado en el archivo de cabecera y conectado a la Vista de imagen de NIB en IB.

¿Hay algún paso que me falta aquí?

Respuesta

8

Establezca el marco y no utilice sendSubviewToBack:. Si está trabajando con UIImageViews usted tiene que utilizar [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"imageName.png"]];

UIImageView *backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"imageBackground"]]; 
backgroundView.frame = self.view.bounds; 
[[self view] addSubview:backgroundView]; 

esperanza éste era el trato.

+1

si hay otros componentes de interfaz de usuario, asegúrese de usar insertSubView, como a continuación: [self.view insertSubview: backgroundView atIndex: 0]; – TharakaNirmana

5
  • No agregue la vista de la imagen como una vista secundaria de la vista de desplazamiento, que tiene que ser una vista separada en el nivel superior de la jerarquía, a continuación, enviado a la parte trasera del orden Z.
  • Deberá establecer el fondo de su vista de desplazamiento en [UIColor clearColor] y asegurarse de que la vista de desplazamiento no esté marcada como opaca. Puede hacer esto en código o en el constructor de interfaz.
  • No use imageWithContentsOfFile y luego simplemente páselo por un nombre de archivo sin extensión (supongo que se trata de .png) - esto probablemente devuelva nil. Utilice imageNamed: lugar (no se proporciona una extensión en ese caso, y por encima de iOS4)

Dependiendo de la naturaleza de la imagen, también puede generar un color con ella y utilizar que como el color de fondo de su vista de desplazamiento. Asumo self.view es la vista de desplazamiento:

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"globalBackground"]]; 
Cuestiones relacionadas