iphone - luz - la pantalla de mi ipad se ve de colores
Necesidad de cambiar el color de la selección de vista de tabla (5)
Necesito cambiar la selección de color azul predeterminada de la vista de tabla a un color personalizado. Hay alguna forma de hacer eso. Ayuadame
Asegúrese de que después de declarar en el encabezado
@property(nonatomic) UITableViewCellSelectionStyle selectionStyle
Implementar
cell.selectionStyle = UITableViewCellSelectionStyleGray
donde UITableViewCellSelectionStyleGray
puede ser UITableViewCellSelectionStyleNone
, UITableViewCellSelectionStyleBlue
, UITableViewCellSelectionStyleGray
.
La mejor manera de hacer esto es así:
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"myCellId";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
UIView *v = [[[UIView alloc] init] autorelease];
v.backgroundColor = [UIColor redColor];
cell.selectedBackgroundView = v;
}
// Set up the cell...
cell.textLabel.text = @"foo";
return cell;
}
La parte relevante para usted es cell.selectedBackgroundView = v;
instrucción. Puede sustituir la vista muy básica ''v'' aquí con cualquier vista que desee.
No creo que puedas usar un color personalizado. Sin embargo, puede utilizar la siguiente propiedad de UITableViewCell
@property(nonatomic) UITableViewCellSelectionStyle selectionStyle
El estilo de selección es una constante backgroundView que determina el color de una celda cuando se selecciona. El valor predeterminado es UITableViewCellSelectionStyleBlue. Ya que
typedef enum {
UITableViewCellSelectionStyleNone,
UITableViewCellSelectionStyleBlue,
UITableViewCellSelectionStyleGray
} UITableViewCellSelectionStyle;
puede cambiar de azul predeterminado a gris, o ninguna selección de color en absoluto.
Otra forma de hacerlo sería moverse en una nueva vista sobre tu celda, con el color que quieras y el 50% de opacidad. Mueve esta vista a la celda cuando recibe una llamada -setSelected: animated:. Cuando digo "Mover", en realidad siempre puedes tener una vista en la parte superior de tu celda, pero simplemente activa y desactiva la parte oculta según lo necesites.
También encontré este problema al intentar crear vistas de celda seleccionadas personalizadas para la celda agrupada. Resolví este problema creando 3 tipos de imágenes para las celdas superior, media e inferior, suponiendo que habrá una celda central.
NSString *imageFile;
if (row == 0) {
imageFile = @"highlighted_cell_top.png";
} else if (row == ([registeredDetailsKeys count] - 1)) {
imageFile = @"highlighted_cell_bottom.png";
} else {
imageFile = @"highlighted_cell_middle.png";
}
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:imageFile]];
cell.selectedBackgroundView = imageView;
Posiblemente hay una forma más fácil pero estoy contento con el resultado.