ios - human - Cambiar el color del borde de un UITableViewCell en la selección
switch ios (3)
Puedes usar
[cell.contentView.layer setBorderColor:[UIColor blackColor].CGColor];
[cell.contentView.layer setBorderWidth:2.0f];
Espero que te ayude.
Estoy usando una celda de vista de tabla personalizada para mi vista de tabla. Para establecer el borde, he puesto una vista en la celda personalizada y estoy cambiando sus propiedades de borde.
self.borderView.layer.borderColor = VIEW_BORDER_COLOR;
Quiero resaltar la celda seleccionada cambiando su color de borde. Traté de cambiarlo en didselectrowforindexpath,
cell.borderView.layer.borderColor = [UIColor yellowColor].CGColor;
pero a medida que las celdas se reutilizan, cambia al desplazarse.
Tendrá que marcar / desmarcar (suponiendo que solo necesita uno seleccionado a la vez) el color del borde una y otra vez como-
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
if(indexPath.row==self.selectedRow){
cell.borderView.layer.borderColor = [UIColor yellowColor].CGColor;
}else {
cell.borderView.layer.borderColor = [UIColor clearColor].CGColor;
}
}
Simplemente guarde / almacene en caché el índice seleccionado como:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
//Unselected the prevoius selected Cell
YourCellClass *aPreviousSelectedCell= (YourCellClass*)[tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:self.selectedRow inSection:0]];
aPreviousSelectedCell.borderView.layer.borderColor = [UIColor clearColor].CGColor;
//Selected the new one-
YourCellClass *aSelectedCell = (YourCellClass*)[tableView cellForRowAtIndexPath:indexPath];
aSelectedCell.borderView.layer.borderColor = [UIColor yellowColor].CGColor;
self.selectedRow = indexPath.row;
}
Utilizando:
Swift 2 :
cell.layer.borderWidth = 2.0
cell.layer.borderColor = UIColor.grayColor().CGColor
Swift 3
cell.layer.borderWidth = 2.0
cell.layer.borderColor = UIColor.gray.cgColor