La selección iOS UITableView oculta el color de background del button subview

Tengo un button como subview de una celda de vista de tabla. Quiero que la vista de tabla muestre la selección cuando se toca, pero el color de selección anula el color de background del button.

Por ejemplo, si tengo un button de background rojo con un título, el título será el único que se mostrará al seleccionar, no el color. El color solo aparecerá como color de selección. Cuando termine la selección, puedo volver a ver el button, pero ¿hay alguna manera de anular este comportamiento?

Prueba esto :

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"CountryCell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; cell = nil; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; } [UIColor clearColor]; cell.selectionStyle = UITableViewCellSelectionStyleGray; // This is the code which solve the issue CAGradientLayer* gr = [CAGradientLayer layer]; gr.frame = cell. frame; gr.colors = [NSArray arrayWithObjects: (id)[[UIColor colorWithRed:0 green:0 blue:0 alpha:.0] CGColor] ,(id)[[UIColor colorWithRed:0 green:0 blue:0 alpha:.0] CGColor] , nil]; gr.locations = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0],[NSNumber numberWithFloat:1],nil]; [cell.layer insertSublayer:gr atIndex:0]; // Put your button UIButton *btn = [[UIButton alloc] init]; btn = [UIButton buttonWithType:UIButtonTypeCustom]; btn.frame = CGRectMake(10, 5, 100, 20); [btn setTitle:@"Testing" forState:UIControlStateNormal]; [btn setBackgroundImage:[UIImage imageNamed:@"headerimg.png"] forState:UIControlStateNormal]; [cell.contentView addSubview:btn]; return cell; } 

Nota: debe usar la image de background del color que desee. No configure el color de background en el button.

Su solución ya probada y funcional.

Espero que te ayude.