¿Cómo evitar que el borde de la celda de tabla sea cortado por la image de la celda?

Tengo una vista de tabla y quiero agregar una image usando el siguiente código,

primero al replace layoutSubviews

 - (void)layoutSubviews{ [super layoutSubviews]; self.imageView.frame = CGRectMake(15, 5, 50, 45); self.imageView.layer.cornerRadius = 5.0f; self.imageView.layer.masksToBounds = YES; self.imageView.contentMode = UIViewContentModeScaleAspectFill; } 

y luego usarlo en el -(MyTableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

  NSString *imageUrlString = [userInfoResponse[indexPath.row - beginIndex] objectForKey:@"image_url"]; NSURL * imageURL = [NSURL URLWithString:imageUrlString]; if ( [[NSUserDefaults standardUserDefaults] objectForKey:imageUrlString] == nil ) { [[NSUserDefaults standardUserDefaults] setObject:[NSData dataWithContentsOfURL:imageURL] forKey:imageUrlString]; } UIImage * img = [UIImage imageWithData:[[NSUserDefaults standardUserDefaults] objectForKey:imageUrlString]]; cell.imageView.image = img; } 

y en esta línea agregué

 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 55.0; } 

Funciona bien con este pequeño problema (ver la image adjunta). No quiero que la línea del borde de la celda sea interrumpida por la image.

introduzca la descripción de la imagen aquí

Intenté jugar en los códigos pero no ayuda. ¿Alguien sabe la respuesta? por favor ayuda. Gracias

NOTA: funciona bien con iOS 6, esta captura de pantalla está en iOS 7. ¿Puede ser una nueva configuration para iOS 7 UITableView ?

Vaya a su controller de vista de tabla y coloque estos códigos en viewDidLoad:

 if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) //should check version to prevent force closed { self.tableView.separatorInset = UIEdgeInsetsZero; } 

Si no desea ajustar la altura de su UITableViewCell , cellForRowAtIndexPath inside cellForRowAtIndexPath :

 [cell clipsToBounds:YES]; 

Ninguna de las respuestas anteriores extiende por completo el borde en toda la longitud de la pantalla. La única forma de lograr esto es pegando el siguiente código en su ViewController:

 -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { if ([cell respondsToSelector:@selector(setSeparatorInset:)]) { [cell setSeparatorInset:UIEdgeInsetsZero]; } if ([cell respondsToSelector:@selector(setLayoutMargins:)]) { [cell setLayoutMargins:UIEdgeInsetsZero]; } } -(void)viewDidLayoutSubviews { if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) { [self.tableView setSeparatorInset:UIEdgeInsetsZero]; } if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) { [self.tableView setLayoutMargins:UIEdgeInsetsZero]; } } 

La celda de vista de tabla es demasiado pequeña. Implementa este método en tu controller y ajusta la altura de la celda.

 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 60.0; } 

En viewDidLoad puesto:

 [self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 0, 0, 0)];