Nenhuma dessas soluções funciona no iPad, mas eu criei uma solução que abrange os dois dispositivos:
Com células reutilizáveis:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
...[other code]...
[cell setLayoutMargins:UIEdgeInsetsZero];
[cell setSeparatorInset:UIEdgeInsetsZero];
return cell;
}
Com células não reutilizáveis:
- (void)removeSeparatorInset:(UITableView*)tableView{
NSArray *cells = [tableView visibleCells];
for (UITableViewCell *cell in cells){
[cell setLayoutMargins:UIEdgeInsetsZero];
[cell setSeparatorInset:UIEdgeInsetsZero];
}
}
-(void) viewDidLayoutSubviews{
[super viewDidLayoutSubviews];
[self removeSeparatorInset:self.tableView];
}
Apenas para expandir essa abordagem:
@property(nonatomic) UIEdgeInsets separatorInset;
@property(nonatomic) UIEdgeInsets layoutMargins;
Ambas as propriedades podem ser usadas por UITableView
& UITableViewCell
. Este último é, de fato, uma propriedade de UIView
, que é uma classe pai de ambos UITableView
& UITableViewCell
.
UITableView
tem uma propriedadeseparatorInset
. Defina a inserção doUITableView
separador de linha como zero. Além disso, você pode alterar oseparatorInset
do storyboard