Du coup tu auras un espacement de 60 à gauche et 60 à droite.
Maintenant si tu veux que l'espace gauche/droite/inter-cellules soit le même, tout ce que tu as à savoir c'est que la contentView d'une NRGridViewCell est un CGRectInset() avec dx et dy = 5
Ce qui donne un interspacing de cellules qui vaut 10.
Te reste plus qu'à faire des maths.. pour une largeur de 320px avec leftSpacing = rightSpacing = intercellSpacing = 10
Le truc c'est que je veux reproduire (comme tu l'as vu), la disposition des photos de Photo.app. Pour le moment j'ai créé une cell qui contient la marge en left et bottom mais au final j'aimerai mieux que ma cell contienne pile poil mon imageView.
Mais vu ce que tu me dis si je créé une cell de 76 x 76 px je devrai avoir un espacement homogène de 4 px.
Réponses
Sinon pour t'expliquer un peu comment c'est centré:
Toutes les cellules se collent, mais comme il y a une contentView, on a toujours l'impression qu'il y a un espacement entre elles.
En gros, si tu as 2 cellules par ligne, c'est centré comme suit:
leftSpacing = floor( (CGRectGetWidth(gridViewBounds) - (cellSize.width*nbOfCellsPerLine)) /2.);
Donc logiquement leftSpacing = rightSpacing sauf si on tombe sur un nombre impair au moment de la division.
Faut juste faire gaffe de bosser qu'avec des cellSize pairs:
leftSpacing = floor( (320 - (100*2)) /2.); = 60.; // pair
Du coup tu auras un espacement de 60 à gauche et 60 à droite.
Maintenant si tu veux que l'espace gauche/droite/inter-cellules soit le même, tout ce que tu as à savoir c'est que la contentView d'une NRGridViewCell est un CGRectInset() avec dx et dy = 5
Ce qui donne un interspacing de cellules qui vaut 10.
Te reste plus qu'à faire des maths.. pour une largeur de 320px avec leftSpacing = rightSpacing = intercellSpacing = 10
cellSize.width = ( (CGRectGetWidth([[self view] bounds]) - (leftSpacing + rightSpacing))/nbOfCellsPerLine );
Soit:
cellSize.width = ( (320. - (10. + 10.)) / 2); = 150
Donc avec une cellSize de 150 de largeur tu devrais avoir le même espacement sur les bords gauche/droite de la gridView et entre les cellules.
Le truc c'est que je veux reproduire (comme tu l'as vu), la disposition des photos de Photo.app. Pour le moment j'ai créé une cell qui contient la marge en left et bottom mais au final j'aimerai mieux que ma cell contienne pile poil mon imageView.
Mais vu ce que tu me dis si je créé une cell de 76 x 76 px je devrai avoir un espacement homogène de 4 px.
Edit : je viens de voir ton edit ^^ Thx
J'aimerais faire un truc comme l'image en pièce-jointe.
Je me demandais si NRGridView pouvait faire l'affaire, ou si carrément il y avait plus simple.
J'hésite à implémenter moi-même ce type d'objet :
X lignes au-dessus de la ligne colorée
X lignes colorées
X lignes au-dessous de la ligne colorée
Mais si c'est déjà implémenté...
J'avais déjà vu des exemples de UICollectionView (du style les trucs épinglés etc.), et du coup, j'avais pas vu que ça pouvait faire ça aussi...
NRGridView ne le peut pas (à moins de tricher et d'écrire du code dégueulasse).