¿Cómo puedo cambiar el color de un encabezado de sección en UITableView?
EDITAR : La respuesta proporcionada por DJ-S debe considerarse para iOS 6 y superior. La respuesta aceptada no está actualizada.
ios
uitableview
cocoa-touch
Ilya Suzdalnitski
fuente
fuente
Respuestas:
Esperemos que este método del
UITableViewDelegate
protocolo lo ayude a comenzar:C objetivo:
Rápido:
Actualizado 2017:
Swift 3:
Reemplace
[UIColor redColor]
con loUIColor
que quiera. También es posible que desee ajustar las dimensiones deheaderView
.fuente
[UIColor xxxColor]
Sin embargo, funciona bien cuando pruebo un color personalizado como los que puedo obtener de Photoshop (así que usando elUIColor red:green:blue:alpha:
, es solo blanco. ¿Estoy haciendo algo mal?Esta es una vieja pregunta, pero creo que la respuesta debe actualizarse.
Este método no implica definir y crear su propia vista personalizada. En iOS 6 y versiones posteriores, puede cambiar fácilmente el color de fondo y el color del texto definiendo el
método de delegado de sección
Por ejemplo:
Tomado de mi publicación aquí: https://happyteamlabs.com/blog/ios-how-to-customize-table-view-header-and-footer-colors/
Swift 3/4
fuente
header.contentView.backgroundColor = [UIColor blackColor];
opción te dará un encabezado opacoAquí se explica cómo cambiar el color del texto.
fuente
Puede hacer esto si desea un encabezado con color personalizado:
Esta solución funciona muy bien desde iOS 6.0.
fuente
La siguiente solución funciona para Swift 1.2 con iOS 8+
fuente
La configuración del color de fondo en UITableViewHeaderFooterView ha quedado en desuso. Por favor, use
contentView.backgroundColor
en su lugar.fuente
No olvide agregar este fragmento de código del delegado o, en algunos casos, su vista se cortará o aparecerá detrás de la tabla, en relación con la altura de su vista / etiqueta.
fuente
Puede hacerlo en main.storyboard en aproximadamente 2 segundos.
fuente
Si no desea crear una vista personalizada, también puede cambiar el color de esta manera (requiere iOS 6):
fuente
Establezca el fondo y el color del texto del área de sección: (Gracias a
William Jockusch
yDj S
)fuente
Swift 4
Para cambiar el color de fondo , el color de la etiqueta de texto y la fuente para la Vista de encabezado de una sección UITableView, simplemente anule
willDisplayHeaderView
la vista de la tabla de la siguiente manera:Esto funcionó perfectamente para mí; Espero que te ayude también!
fuente
Aquí le mostramos cómo agregar una imagen en la vista de encabezado:
fuente
Para iOS8 (Beta) y Swift, elija el color RGB que desee y pruebe esto:
}
(La "anulación" está ahí ya que estoy usando el UITableViewController en lugar de un UIViewController normal en mi proyecto, pero no es obligatorio para cambiar el color del encabezado de la sección)
El texto de su encabezado aún se verá. Tenga en cuenta que deberá ajustar la altura del encabezado de sección.
Buena suerte.
fuente
SWIFT 2
Pude cambiar con éxito el color de fondo de la sección con un efecto de desenfoque agregado (que es realmente genial). Para cambiar fácilmente el color de fondo de la sección:
Luego, para el efecto de desenfoque, agregue al código:
fuente
Sé que se respondió, por si acaso, en Swift use lo siguiente
fuente
iOS 8+
fuente
Basado en la respuesta de @Dj S, usando Swift 3. Esto funciona muy bien en iOS 10.
fuente
Tengo un proyecto que usa celdas de vista de tabla estática, en iOS 7.x. willDisplayHeaderView no se dispara. Sin embargo, este método funciona bien:
fuente
fuente
Creo que este código no es tan malo.
fuente
Swift 4 lo hace muy fácil. Simplemente agregue esto a su clase y configure el color según sea necesario.
o si un color simple
Actualizado para Swift 5
o si un color simple
fuente
En iOS 7.0.4 creé un encabezado personalizado con su propio XIB. Nada de lo mencionado aquí funcionó antes. Tenía que ser la subclase de UITableViewHeaderFooterView para trabajar con
dequeueReusableHeaderFooterViewWithIdentifier:
y parece que la clase es muy terca con respecto al color de fondo. Así que finalmente agregué una UIView (puede hacerlo con código o IB) con el nombre customBackgroudView, y luego configuré su propiedad backgroundColor. En layoutSubviews: establecí el marco de esa vista en los límites. Funciona con iOS 7 y no presenta fallas técnicas.fuente
Simplemente cambie el color de la capa de la vista de encabezado
fuente
Si alguien necesita rapidez, mantiene el título:
fuente
Recibí un mensaje de Xcode a través del registro de la consola
Luego, creo un nuevo UIView y lo coloco como fondo de HeaderView. No es una buena solución, pero es fácil como dijo Xcode.
fuente
En mi caso, funcionó así:
fuente
Simplemente configure el color de fondo de la vista de fondo:
fuente
Con RubyMotion / RedPotion, pegue esto en su TableScreen:
¡Funciona de maravilla!
fuente
Para swift 5 +
En el
willDisplayHeaderView
métodoEspero que esto te ayude :]
fuente
Aunque
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int)
funcionará bien, puede lograr esto sin implementar otro método de delegado. en sufunc tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
método, puede usar enview.contentView.backgroundColor = UIColor.white
lugar de loview.backgroundView?.backgroundColor = UIColor.white
que no funciona. (Sé quebackgroundView
es opcional, pero incluso cuando está allí, no funciona sin implementarwillDisplayHeaderView
fuente