[resolu] CollectionView - bordure des cellules non homogènes

GeoffreyGeoffrey Membre
octobre 2014 modifié dans API UIKit #1

Bonsoir,


 


Toujours les collectionview.


 


Je met une bordure à  mes cellules comme ca :



    cell.layer.borderColor = [[UIColor lightGrayColor]CGColor];
    cell.layer.borderWidth = .5f;

Par contre l'épaisseur n'est pas homogène sur toute la collection view comme on peut voir sur la capture en PJ.


 


Mots clés:

Réponses

  • Pour moi c'est un simple effet de pixelisation : chaque trait fait 1 ou 2 pixel d'épaisseur suivant sur quelle "fraction" de pixel tombent le début et la fin de chaque cellule.


  • AliGatorAliGator Membre, Modérateur

    Peut-être qu'en jouant avec la propriété edgeAntialiasingMask du CALayer de tes cellules tu pourras jouer sur ce rendu ?


  • Nope malheureusement ca change rien


  • Bon j'ai fait un hack un peu moche  en collant une view en bordure dans le cellforrow



          UIView *topBorder = [[UIView alloc] initWithFrame:CGRectMake(0, 0, cell.frame.size.width, .5)];
            topBorder.backgroundColor = [UIColor lightGrayColor];
            [cell addSubview:topBorder];
            
            UIView *leftBorder = [[UIView alloc] initWithFrame:CGRectMake(0, 0, .5, cell.frame.size.height)];
            leftBorder.backgroundColor = [UIColor lightGrayColor];
            [cell addSubview:leftBorder];
            
            if (indexPath.section == numberOfRow - 1) {
                UIView *bottomBorder = [[UIView alloc] initWithFrame:CGRectMake(0, cell.frame.size.height - .5, cell.frame.size.width, .5)];
                bottomBorder.backgroundColor = [UIColor lightGrayColor];
                [cell addSubview:bottomBorder];
            }
            
            if (indexPath.row == numberOfRow - 1) {
                UIView *rightBorder = [[UIView alloc] initWithFrame:CGRectMake(cell.frame.size.width - .5, 0, .5, cell.frame.size.height)];
                rightBorder.backgroundColor = [UIColor lightGrayColor];
                [cell addSubview:rightBorder];
            }
  • Screen ?
  • Et voila le beau screen avec des lignes bien homogènes :)


     


     


Connectez-vous ou Inscrivez-vous pour répondre.