usa precio iphone

iphone - precio - ¿Cómo puedo configurar el fondo de UITableView(el estilo de vista de tabla está "Agrupado") para usar una imagen?



iphone xr (11)

Después de pasar un tiempo con el selector de color, descubrí que debe especificar el fondo opaco no para la celda de vista de tabla xib, sino para la vista de tabla donde se ubicarán las celdas, que es otro xib. Por lo que he visto, los atributos de fondo de celda de vista de tabla no tienen efecto visual.

¿Cómo puedo configurar el fondo de UITableView (el estilo de vista de tabla está "Agrupado") para usar una imagen?


En UI Builder, el color de fondo tiene una opción "Otro". Esto abre un selector de color. El selector de color tiene una configuración de opacidad. Si configura la Opacidad del COLOR en 0, funciona, no puede hablar de rendimiento.


Haga que el fondo de UITableview tenga un color claro.


Lo que he encontrado es que debes usar una tabla con un fondo transparente y luego recrear el aspecto de las celdas de esquina redondeada configurando el backgroundView de cada celda en un UIImageView con una imagen que simula el aspecto redondeado. Esto significa que las celdas superior, inferior y central necesitan diferentes imágenes de fondo.

Sin embargo, esto no soluciona lo que sucede cuando el usuario toca la celda y se pone "resaltado": se verá al cuadrado. Puede evitar esto configurando la imagen resaltada para su imagen de fondo de la mesa de la falsificación. También querrás crear tu propia vista de accesorio de divulgación (ImageView) con una versión resaltada en blanco. Entonces puedes crear una celda como esta que estoy usando (abajo). Después de asignar una de estas celdas, configuro el backgroundView y el accessoryView como mis UIImageViews.

#import "ClearBackRoundedTableCell.h" @implementation ClearBackRoundedTableCell - (id)initWithReuseIdentifier:(NSString *)reuseIdentifier { if (self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier]) { } return self; } - (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated { if( [[self.accessoryView class] isSubclassOfClass:[UIImageView class]] ) ((UIImageView *)self.accessoryView).highlighted = highlighted; if( [[self.backgroundView class] isSubclassOfClass:[UIImageView class]] ) ((UIImageView *)self.backgroundView).highlighted = highlighted; self.textLabel.highlighted = highlighted; } @end

Una nota si vas por esta ruta: las celdas en una tabla agrupada son típicamente de 300 px de ancho (en modo retrato) pero tu tabla simple aquí necesitaría tener 302 de ancho para permitir la línea gris a cada lado de la tabla, que es normalmente fuera del "contenido" de la celda de la tabla.


Necesitamos hacer algo acerca de ese fondo simple. Vamos a usar una imagen PNG y mostrarla detrás de UITableView.

  1. Prepare una imagen PNG. Debería ser 320x460 (si tiene la barra de estado visible en su aplicación) o 320x480 (si lo oculta).
  2. Arrástrelo a XCode en la carpeta de Recursos y añádalo a su proyecto
  3. Cargue el archivo NIB que contiene su UITableView en el Interface Builder
  4. Abra la biblioteca (Herramientas> Biblioteca), cambie a la pestaña Medios y arrastre la imagen a la Vista, cree una nueva UIImageView.
  5. Utilice el inspector para mover y cambiar el tamaño de la imagen para que esté en X = 0, Y = 0, Ancho = 320, Altura = 480
  6. Coloque el UIImageView detrás de UITableView (Diseño> Enviar al fondo)
  7. ¡Salva, Construye y Ve!

Decepcionante, no podrás ver tu fondo. El fondo de UITableView nos impide ver el UIImageView. Hay tres cambios que necesita hacer:

  1. ¡En el Inspector de Atributos, asegúrese de que la casilla "opaca" de UITableView esté desmarcada!
  2. Establezca el color de fondo de UITableView en transparente:

    tableView.backgroundColor = [UIColor clearColor];

Espero que esto ayude y resuelva tu problema. Me ha funcionado y todavía no he encontrado una forma más elegante de mostrar una imagen de fondo para una UITableView.

La ventaja de mi solución, en comparación con la configuración de una imagen de fondo directamente en UITableView, es que puede sangrar el contenido de la tabla. A menudo quería hacer esto para mostrar solo dos o tres celdas de la tabla en la parte inferior de la pantalla.


Programáticamente puede hacerlo así si su imagen se agrega a sus recursos:

self.tableView.backgroundColor = [UIColor clearColor]; self.tableView.opaque = NO; UIImage *backroundImage = [UIImage imageNamed:@"my_backround"]; UIImageView *backroundImageView = [[UIImageView alloc] initWithImage:backroundImage];

De lo contrario, puedes hacerlo en Interface Builder con este estilo:

Es posible que deba configurar la interfaz de archivos de cabecera desde UITableViewController a UIViewController y agregar <UITableViewDataSource,UITableViewDelegate> , tampoco olvide configurar los atributos de la tabla vista para que no sean opacos y vuelva a conectar la fuente de datos de las tablas y delegue las salidas al controlador de vista.


Una forma sería hacer transparente la vista de tabla (establecer el fondo de la vista a 0% de opacidad) y colocar un UIImageView detrás de UITableView. Recuerde que las tablas transparentes y las celdas de tabla no funcionarán tan bien como las opacas.


prueba este

UIView *backView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease]; backView.backgroundColor = [UIColor clearColor]; cell.backgroundView = backView;

Funcionó para mí en tableview agrupado.


tableView.backgroundView = nil; es suficiente. No es necesario establecer el color de fondo como Borrar color.


En las versiones más recientes del SDK, deberá establecer tableView.backgroundView si desea que sea transparente, intente algo como esto:

tableView.backgroundColor = [UIColor clearColor]; tableView.opaque = NO; tableView.backgroundView = nil;


[tableView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"whatever.png"]]];