iphone - Imagen de fondo de UITableView
background background-color (11)
Estoy tratando de configurar una imagen png como fondo de mi mesa de trabajo. Con el siguiente código, ¡todo está bien! Pero solo en iPhone Simulator. Si intento ejecutar la aplicación en un dispositivo iPhone, el fondo de la vista de tabla permanece en blanco (o claro). ¿Tiene algo que ver con la forma en que traté de establecer el color de fondo? Lo he intentado de muchas maneras hasta el siguiente, pero todos tienen el mismo problema.
self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.opaque = NO;
self.tableView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
¡Gracias de antemano!
¿Su imagen se llama realmente TableViewBackground.PNG
(tenga en cuenta las mayúsculas)? Debe tener la coincidencia de mayúsculas y minúsculas exactamente en un dispositivo iOS, mientras que no es necesario que coincida exactamente en el simulador.
Creo que este enfoque es más limpio:
UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"TableBackground.jpg"]];
self.tableView.backgroundColor = background;
[background release];
Esto funciona perfectamente bien, también si desea utilizar una imagen de patrón para su fondo.
UIImage *image = [UIImage imageNamed:@"something.png"];
self.tableView.backgroundView = nil;
self.view.backgroundColor = [UIColor colorWithPatternImage:image];
La versión simple rápida será
let tempImageView = UIImageView(image: UIImage(named: "yourImage"))
tempImageView.frame = self.tableView.frame
self.tableView.backgroundView = tempImageView;
Por favor usa el siguiente código
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
[tempImageView setFrame:self.tableView.frame];
self.tableView.backgroundView = tempImageView;
[tempImageView release];
Gracias,
Un poco tarde, pero tal vez para todos los demás que buscan una solución. Podría obtener ese trabajo utilizando el siguiente código en el método viewDidLoad
del UITableViewController
:
self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];
self.tableView.backgroundColor = [UIColor clearColor];
o con solo usar un color de fondo:
self.parentViewController.view.backgroundColor = [UIColor scrollViewTexturedBackgroundColor];
self.tableView.backgroundColor = [UIColor clearColor];
Me tomó un tiempo darme cuenta de eso, pero ahora funciona como un encanto.
Una subclase de tabla vista IBDesignable que le permitirá adjuntar una imagen desde el constructor de interfaz
import UIKit
@IBDesignable
class DesignableTableView: UITableView {
@IBInspectable var backgroundImage: UIImage? {
didSet {
if let image = backgroundImage {
let backgroundImage = UIImageView(image: image)
backgroundImage.contentMode = UIViewContentMode.ScaleToFill
backgroundImage.clipsToBounds = false
self.backgroundView = backgroundImage
}
}
}
}
Versión Objective-c:
cell.backgroundColor = [UIColor clearColor];
También vea esto: Cómo crear una UITableViewCell con un fondo transparente
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
[tempImageView setFrame:self.tableView.frame];
self.tableView.backgroundView = tempImageView;
[tempImageView release];
Esto funciona perfecto Gracias a Ravin por Jona
UIImageView *imageviewTemp = [[UIImageView alloc] init];
[(UIImageView *)imageviewTemp sd_setImageWithURL:[NSURL URLWithString:self.stringOfPassedImage]];
[imageviewTemp setFrame:self.tableView.frame];
self.tableView.backgroundView = imageviewTemp;
[TableView setBackgroundView:nil];
[TableView setBackgroundView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"apple.png"]] ];