2012-04-08 19 views
8

¿Cómo puedo establecer una imagen para UITableViewController?UITableViewController Imagen de fondo

he utilizado muchas cosas pero no me ayuda a establecer la imagen como fondo

UIImageView* bgView = [[[UIImageView alloc] initWithImage: 
[UIImage imageNamed:@"Default.png"]] autorelease]; 

[tableView.backgroundView addSubview:bgView]; 

Y esto

[[self view] setAutoresizesSubviews:NO]; 

UIView *backgroundView = [[UIView alloc] initWithFrame:self.view.frame]; 
backgroundView.backgroundColor = 
    [UIColor colorWithPatternImage: 
    [UIImage imageNamed:@"Default.png"]]; 

self.tableView.backgroundView = backgroundView; 
self.tableView.backgroundColor = [UIColor clearColor]; 

[backgroundView release]; 

Y

self.navigationController.view.backgroundColor = 
    [UIColor colorWithPatternImage: 
    [UIImage imageNamed:@"myImage.png"]]; 
self.tableView.backgroundColor = [UIColor clearColor]; 

Nada de eso funcionó para mi.

Respuesta

24

establece el modo de relleno background

[youTable setBackgroundView: 
    [[UIImageView alloc] initWithImage: 
    [UIImage imageNamed:@"bg.png"]]]; 

establece la baldosa background modo

[youTable setBackgroundColor: 
    [UIColor colorWithPatternImage: 
    [UIImage imageNamed:@"bg.png"]]]; 
+0

tengo prueba de que en mi proyecto y que desafortunadamente no funciona – Youstanzr

+0

mi duda es que pongas un color de fondo en las celdas, y estas cubren el fondo. – WhiteTiger

+0

mis celdas son predeterminadas, no cambié el color, ¿debo cambiarlo a color claro o el valor predeterminado es claro? – Youstanzr

4
UIImage *image = [UIImage imageNamed:@"image.png"]; 
UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 

UITableView *tableView = (UITableView*)tableViewController.view; 
tableView.backgroundView = imageView; 
[imageView release]; 
0

Puede configurar el fondo de la vista tableviews a una instancia UIImageView (propiedad de backgroundViewUITableView).

1

Si todas las sugerencias anteriormente mencionadas no funcionan, sólo lo hacen de esta manera (el enfoque que siempre uso):

  1. crear una subclase UIViewController.
  2. En viewDidLoad agregue un UIImageView y un UITableView como subvistas.
  3. Configure tableView e implemente los métodos de delegado. Establezca la imagen de fondo en el imageView.

Creo que establecer el fondoVer una tabla puede causar errores gráficos (repetir imágenes para cada celda), por eso utilizo el enfoque que se describe aquí.

0

El siguiente código funciona bien para mí. Se puede tratar siguiente código: -

UIImageView *bgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default.png"]]; 
bgView.frame = self.view.frame; 
self.tableView.backgroundColor = [UIColor clearColor]; 
self.tableView.backgroundView = bgView; 
[bgView release]; 
0

i tampoco fue capaz de establecer el backgroundColor de UITableView porque es un UITableViewController, mi problema resuelto por esta

[self.tableView setBackgroundView: 
    [[UIImageView alloc] initWithImage: 
    [UIImage imageNamed:@"bg.png"]]]; 

como lo sugiere el "WhiteTiger" .

+0

que está desarrollando para el iPad? iPad setBackgroundColor no funciona, tienes que usar necesariamente setBackgroundView – WhiteTiger

+0

no estoy usando setBackgroundColor aquí, y estoy trabajando para iphone – SAHIL

0

Esto funcionó para mí:

self.tableView.backgroundView = nil; 
self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg2.png"]]; 

o

[self.tableView setBackgroundView:nil]; 
[self.tableView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"bg2.png"]]]; 
3

Esto funcionó para mí:

tableView.backgroundView = 
    [[UIImageView alloc]initWithImage: 
    [[UIImage imageNamed:@"background.png"] stretchableImageWithLeftCapWidth:0.0 
              topCapHeight:5.0]]; 
+1

Bueno, pero explícalo para una mejor comprensión de los usuarios. – Shivaay