Me pregunto cómo cambiar el color de resaltado azul/selección de un UITableViewCell
, alguna idea?¿Cómo cambiar el color de resaltado azul de una UITableViewCell?
Respuesta
Puede cambiar el color de resaltado de varias maneras.
Cambie la propiedad de selección de estilo de su celda. Si lo cambia a
UITableViewCellSelectionStyleGray
, será gris.Cambia la propiedad
selectedBackgroundView
. En realidad, lo que crea el degradado azul es una vista. Puede crear una vista y dibujar lo que desee, y usar la vista como fondo de las celdas de la vista de tabla.
UITableViewCell
tiene tres estilos de selección por defecto: -
- azul
- grises
- Ninguno
implementación es el siguiente: -
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *) indexPath {
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
}
en lugar de estos tres estilos predeterminados, también podemos personalizar nuestro estilo esperado mediante la propiedad SelectedBackgroundView. –
Funcionó para mí ... Gracias ton. –
Zonble ya ha proporcionado una excelente respuesta. Pensé que podría ser útil incluir un fragmento de código corto para agregar un UIView
a la celda de vista de tabla que se presentará como la vista de fondo seleccionada.
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
UIView *selectionColor = [[UIView alloc] init];
selectionColor.backgroundColor = [UIColor colorWithRed:(245/255.0) green:(245/255.0) blue:(245/255.0) alpha:1];
cell.selectedBackgroundView = selectionColor;
- celular es mi
UITableViewCell
- creé un UIView y establecer su color de fondo con los colores RGB (gris claro)
- entonces me puse la célula
selectedBackgroundView
ser elUIView
que creé con mi color de fondo elegido
Esto funcionó bien para mí. Gracias por el consejo Zonble.
Esto no funciona demasiado bien cuando Usar vistas de tabla con secciones Cuando se selecciona, la celda perderá los bordes y no se redondeará cuando la primera o la última celda. –
@kirk, quiere decir agrupados :) – Tieme
@Tieme, no, me refiero a [secciones] (http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableView_Class/Reference/Reference.html): "Una vista de tabla se compone de cero o más secciones, cada una con sus propias filas". –
Si desea cambiarlo aplicación amplia, se puede añadir la lógica de su aplicación Delegado
class AppDelegate: UIResponder, UIApplicationDelegate {
//... truncated
func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {
// set up your background color view
let colorView = UIView()
colorView.backgroundColor = UIColor.yellowColor()
// use UITableViewCell.appearance() to configure
// the default appearance of all UITableViewCells in your app
UITableViewCell.appearance().selectedBackgroundView = colorView
return true
}
//... truncated
}
Perfecto. ¿Alguna idea de cómo establecer el color del texto de esa celda predeterminada globalmente en select? – BananaAcid
esto funciona, pero luego la selección se borra directamente al presionar el nuevo controlador de vista. – bobmoff
Una buena manera de realizar cambios globales en UITableViewCell – Shashi3456643
tengo que configurar el estilo de selección para UITableViewCellSelectionStyleDefault
para el color de fondo personalizado para trabajar. Si hay otro estilo, se ignorará el color de fondo personalizado. Probado en iOS 8.
El código completo para la celda de la siguiente manera:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"MyCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// This is how you change the background color
cell.selectionStyle = UITableViewCellSelectionStyleDefault;
UIView *bgColorView = [[UIView alloc] init];
bgColorView.backgroundColor = [UIColor redColor];
[cell setSelectedBackgroundView:bgColorView];
return cell;
}
esté completo: si ha creado su propia subclase de UITableViewCell se puede implementar el - (void) setSelected: (BOOL) seleccionado animado: (BOOL) método animado, y establecer el color de fondo de alguna vista que ha agregado en la vista de contenido. (Si ese es el caso) o de la propia contentView (si no está cubierto por uno de sus propios puntos de vista.
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
if(selected) {
self.contentView.backgroundColor = UIColor.blueColor;
} else {
self.contentView.backgroundColor = UIColor.whiteColor;
}
}
(no utilizaron?para adaptarse al pequeño ancho del código fuente DIV :)
este enfoque tiene dos ventajas sobre el uso de selectedBackgroundView, utiliza menos memoria y un poco menos de CPU, algo que ni siquiera notarías si no mostraras cientos de celdas.
Esto funciona solo después de asignar una nueva vista al 'selectedBackgroundView' Al comienzo del método agrega 'self. selectedBackgroundView = [UIView new]; ' – enadun
En Swift, utilizar esto en cellForRowAtIndexPath
let selectedView = UIView()
selectedView.backgroundColor = UIColor.white
cell.selectedBackgroundView = selectedView
Si usted quiere que su color de selección sea la misma en cada uso UITableViewCell
, esto en AppDelegate
.
let selectedView = UIView()
selectedView.backgroundColor = UIColor.white
UITableViewCell.appearance().selectedBackgroundView = selectedView
@IBDesignable class UIDesignableTableViewCell: UITableViewCell {
@IBInspectable var selectedColor: UIColor = UIColor.clearColor() {
didSet {
selectedBackgroundView = UIView()
selectedBackgroundView?.backgroundColor = selectedColor
}
}
}
En el guión gráfico, defina la clase de su UITableViewCell a UIDesignableTableViewCell, en el inspector de atributos, es posible cambiar el color de la celda seleccionada a cualquier color.
Puede usarlo para todas sus celdas. Así se verá su inspector de Atributos.
¡Muy creativo! ¡estupendo! –
Swift 3,0/4,0
Si ha creado su propia celda personalizado se puede cambiar el color de selección en awakeFromNib()
para todas las células:
override func awakeFromNib() {
super.awakeFromNib()
let colorView = UIView()
colorView.backgroundColor = UIColor.orange.withAlphaComponent(0.4)
self.selectedBackgroundView = colorView
}
- 1. Cambiar color de resaltado
- 2. Cómo cambiar el color predeterminado de UISwitch (azul)
- 3. Cómo cambiar el color predeterminado de estado activo "azul"
- 4. Cómo hacer que el estado resaltado de UITableViewCell persista
- 5. ¿Cómo cambiar el color del icono tabbar del azul predeterminado?
- 6. Cómo cambiar el color de fondo del color de la pestaña seleccionada de UITabbar a azul?
- 7. jQuery: ¿Cambiar el color de desvanecimiento de resaltado?
- 8. Cambiar el color del texto resaltado en Android
- 9. ¿Cómo cambiar el color de primer plano del texto resaltado para un WPF TextBox?
- 10. no puede cambiar el color de fondo UITableViewCell
- 11. ¿Cómo cambiar el color de resaltado/fondo de System.Windows.Forms.ToolStripButton cuando está marcado?
- 12. Cómo cambiar el color de acento de mi aplicación de Android de azul a algo más
- 13. ¿Cómo puedo configurar el color accesorio de una UITableViewCell?
- 14. Quitar el color de resaltado de células de UITableView
- 15. Cambiar el color de fondo de un UILabel dentro de una UITableViewCell
- 16. UITableViewCell se vuelve azul cuando se desplaza
- 17. Cómo cambiar el color de UITextview UIDataDetectorTypeLink?
- 18. ¿Cambiar color de sintaxis en vim?
- 19. ¿Cómo retener o animar el color de fondo de la subvista en UITableViewCell en la selección?
- 20. cómo cambiar la línea azul en el AlertDialog (tema Holo)
- 21. VIM: Cómo cambiar el color de resaltado Showbreak sin utilizar el color no es de texto de elementos
- 22. ¿El color azul restante en :: selección?
- 23. Fondo de texto resaltado y primer plano - ¿Cómo cambiar?
- 24. cambiar UITableViewCell fondo
- 25. Color de resaltado del nodo TreeView en C#
- 26. Cómo cambiar el color de la variable de resaltado en NetBeans IDE?
- 27. Cambiar el color de la selección
- 28. Cambiar la altura de una UITableViewCell
- 29. ¿Cómo establecer el color de resaltado para el elemento ListView?
- 30. UITableViewCell: ¿Cómo evitar el fondo de selección azul sin borking isSelected property?
fresco, que se encuentra una buena explicación y ejemplo aquí: http: //cocoawithlove.com/2009/04/easy-custom-uitableview-drawing.html –
Me di cuenta de que en IB no puede configurar el UITableViewCell "Selectio n "a" None "- porque' selectedBackgroundView' simplemente nunca aparecerá. Solo después de configurar "Selección" a Predeterminado, aparece el 'selectedBackgroundView'. Probado en iOS 6 y 7. – Jonny
¡Gracias por la gran nota! Esto lo hace tan simple ahora: crea una nueva vista (no necesita especificar el marco: 'cell.selectedBackgroundView = [UIView new];' y establece el color que desee: 'cell.selectedBackgroundView.backgroundColor = [UIColor colorWithHex : @ "ecf2f5" andAlpha: 1]; ' –