Comment peut-on supprimer l'indentation dans UITableView?

Tout d'abord, je suis nouveau à ce sujet et je suis très probablement oublier quelque chose de très simple.

Question:

Je fais une application qui affiche des images randoms de imgur.com dans un tableView . Pour une raison quelconque, toutes les cellules sont en retrait une petite quantité comme on le voit sur l'image ci-dessous. J'ai joué avec de nombreux parameters dans le storyboard et n'ai pas eu de chance de régler le problème.

remarquez le retrait sur le côté gauche des images

Voici le code de tableView …

 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { // Return the number of sections. return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { // Return the number of rows in the section. return (_images.count * 2); } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = nil; if (indexPath.row % 2 == 0) { //content cell cell = [tableView dequeueReusableCellWithIdentifier:@"RandomImgurTableCell"]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"RandomImgurTableCell"]; } long row = [indexPath row] / 2; SDImageCache* myCache = [SDImageCache sharedImageCache]; cell.imageView.image = [myCache imageFromDiskCacheForKey:_images[row]]; } else if (indexPath.row % 2 == 1) { //separator cell cell = [tableView dequeueReusableCellWithIdentifier:@"SeparatorCell"]; if(cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"SeparatorCell"]; } } if (indexPath.row == (_images.count * 2) - 3) { [self checkToLoadMoreImages]; NSLog(@"Hit bottom of table, getting more images"); } return cell; } 

Voici une photo de mes parameters tableView et cellule …

entrez la description de l'image icientrez la description de l'image ici

L'ajustement de l' encart du séparateur devrait résoudre ce problème. Je crois que la valeur par défaut est 15px dans la gauche.

Afin de se débarrasser de l'indentation, vous définissez les insertions de séparateur à zéro. Le résultat est montré dans l'image suivante.

entrez la description de l'image ici

Dans du code

 myTableView.separatorInset = UIEdgeInsetsZero 

Dans l'interface Builder

entrez la description de l'image ici

Remarques

Si les cellules provoquent le retrait, vous pouvez append les lignes suivantes à tableView:cellForRowAtIndexPath :

 cell.separatorInset = UIEdgeInsetsZero cell.preservesSuperviewLayoutMargins = false cell.layoutMargins = UIEdgeInsetsZero 

Si vous supportez toujours la pré-version d'iOS 8, consultez cette réponse pour plus de détails.

  • Voir aussi ce Q & A.

Si vous faites reference à l'indentation horizontale, vous devriez essayer ce qui suit:

  1. Assurez-vous que le cadre de vue du contenu x origine est à 0:

    yourTableViewCell.contentView.frame = CGRectMake(0.0f, 0.0f, SOME_WIDTH, SOME_HEIGHT);

  2. Vous devez vous assurer que la vue d'image que vous ajoutez à UITableViewCell est alignée avec son bord gauche parent. Si vous utilisez autolayout, faites-le dans le constructor de l'interface. Autrement:

    yourImageView.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleHeight;

  3. Voir que lorsque l'image est mise à l'échelle, elle rest fidèle au cadre de vue:

    yourImageView.contentMode = UIViewContentModeScaleAspectFill;

  4. Assurez-vous que la cellule a 0 indentation:

    yourTableViewCell.indentationLevel = 0;

Si rien de cela ne vous aide, définissez un point d'arrêt et examinez les sous-vues de la cellule à l'aide de l'une des commands de debugging suivantes:

 po [[UIWindow keyWindow] recursiveDescription] po [yourTableViewCell recursiveDescription]