UITableViewCell en iOS7 ahora tiene lagunas en la izquierda y la derecha
indentation custom-cell (6)
Tengo un UITableView donde, en ios6, mi celda personalizada se estira completamente a los lados izquierdo y derecho de la pantalla. Así que mi imagen cuadrada a la izquierda de la celda fue dura contra la pantalla del teléfono.
Sin embargo, ahora en ios7, hay una pequeña brecha que aparece en el lado izquierdo, por lo que la imagen ahora está alejada del lado y superpone ligeramente mi texto dentro de la celda.
Esto también parece estar sucediendo en otras aplicaciones que tengo que ahora estoy viendo en iOS7, todas tienen un espacio a la izquierda y quizás a la derecha también.
Mi celda personalizada está configurada en un tamaño de 320 de acuerdo con el Creador de interfaz - iOS 7 no ha cambiado, ¿o sí?
iOS7 agregó una propiedad separatorInset
.
Intente agregar esto a su UITableViewController
:
if ([self.tableView respondsToSelector:@selector(separatorInset)]) {
[self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
Agregar la imagen a cell.contentView
soluciona el problema:
[cell.contentView addSubview:imgView];
De esta forma, ni siquiera tiene que importarle la propiedad separatorInset
.
Para aquellos que usan Xamarin / MonoTouch en c #
tableView.SeparatorInset = UIEdgeInsets.Zero;
Prefiero hacer separadores yo mismo. Se siente más simple que luchar con la configuración de la vista de tabla. Simplemente ajuste los separadores a ninguno, subclasse sus celdas y haga esto en init.
-(id)initWithCoder:(NSCoder *)aDecoder{
self = [super initWithCoder:aDecoder];
if(self){
UIView *seperator = [[UIView alloc] init];
[seperator setBackgroundColor:[UIColor blackColor]];
seperator.frame = CGRectMake(0, self.bounds.size.height-1, self.bounds.size.width, 1);
[seperator setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth];
[self.contentView addSubview:seperator];
}
return self;
}
Esto está funcionando perfecto para mí:
-(void)viewDidLayoutSubviews
{
if ([self.Video_TableVIEW respondsToSelector:@selector(setSeparatorInset:)]) {
[self.Video_TableVIEW setSeparatorInset:UIEdgeInsetsZero];
}
if ([self.Video_TableVIEW respondsToSelector:@selector(setLayoutMargins:)]) {
[self.Video_TableVIEW setLayoutMargins:UIEdgeInsetsZero];
}
}
-(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];
}
}
override func viewDidLoad() {
super.viewDidLoad()
tableView.cellLayoutMarginsFollowReadableWidth = false
}