2013-02-25 8 views
8

Ich habe ein eindimensionales Array von Bildern, die ich in eine UICollectionView füttere. Die Sammlungsansicht ist nur ein Abschnitt, der aus den Elementen im Array besteht. wenn ich auf eine Zelle klicke und -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath; abgefeuert wird und ich einen Ausdruck aus dem indexPath mache bekomme ich Werte wie [0,0] für Element 0 in Zeile 0 aber dann ist das nächste Element in dieser Zeile [0,5] .Wie bekomme ich den Index vom Indexpfad in einer UICollectionView?

Wie kann ich den IndexPath zu meinem Array wie die Art und Weise, UITableView die [indexPath Zeile] entspricht direkt auf den entsprechenden Index?

+1

Welche Code verwenden, werden Sie aus dem indexPath drucken verwenden? – Darren

+0

Die Sammelansicht ist wahrscheinlich falsch ausgerichtet. Wenn Sie auf das Element rechts tippen, tippen Sie unten auf das Symbol und umgekehrt ... – jjv360

+0

Für jedes Element in diesem Abschnitt können Sie die Anzahl der Abschnitte mit indexPath.section und multiplizieren Fügen Sie indexpath.row hinzu, um den Index für das 1-dimensionale Array zu erhalten. Beispiel: für ein 4x4 Gitter, (0,0) ((4 * 0) + 0) (0,1) ist ((4 * 0) + 1) (0,2) ist ((4 * 0) +2) . . . (4,3) ist ((4 * 3) +3) (4,4) ist ((4 * 3) +4) –

Antwort

17

Ich habe sie nie benutzt, aber ich verstehe, dass die zwei Eigenschaften eines UICollectionView IndexPath Abschnitt und Element sind, nicht Abschnitt und Zeile wie in einem UITableView.

+0

Ich protokolliert sowohl indexPath.row und indexPath.row, und nur um sie zu finden genau das gleiche ... – Calios

+13

@Calios Nun, ich würde mir vorstellen, wenn Sie das gleiche Ding zweimal geloggt haben, würden Sie das gleiche Ergebnis erhalten. – Ruiz

7

Abrufen Sie Elementindex benötigen indexPath.item (für UICollectionView) nicht indexPath.row (es ist für UITableView)

Verwandte Themen