Blick auf die Unterseite von UICollectionView.h und Sie erhalten die Kategorie sehen, die NSIndexPath item
als Eigenschaft hinzufügen erstreckt, wenn innerhalb von für UICollectionView Instanzen verwendet.
Es gibt einen ähnlichen Abschnitt am unteren Rand von UITableView.h, der die Eigenschaften row
und section
für NSIndexPaths hinzufügt, die in UITableViews verwendet werden.
Wenn Sie versuchen, auf diese Eigenschaften einer NSIndexPath-Instanz innerhalb einer Klasse zuzugreifen, und die NSIndexPathInstance glaubt nicht, dass sie da sind, importieren Sie einfach die Kopfzeile der Klasse, die sie definiert, an die Spitze Ihrer Klasse und Sie werden es magisch in der Lage sein, auf diese Eigenschaften zuzugreifen.
UICollectionView.h
@interface NSIndexPath (UICollectionViewAdditions)
+ (instancetype)indexPathForItem:(NSInteger)item inSection:(NSInteger)section NS_AVAILABLE_IOS(6_0);
@property (nonatomic, readonly) NSInteger item NS_AVAILABLE_IOS(6_0);
@end
UITableView.h
//_______________________________________________________________________________________________________________
// This category provides convenience methods to make it easier to use an NSIndexPath to represent a section and row
@interface NSIndexPath (UITableView)
+ (instancetype)indexPathForRow:(NSInteger)row inSection:(NSInteger)section;
@property (nonatomic, readonly) NSInteger section;
@property (nonatomic, readonly) NSInteger row;
@end
Um diese Eigenschaften in Ihrer Klasse verwenden Sie den gewünschten Satz aus in die Klasse importieren, etwa so:
@import "UIKit/UITableView.h"
Und dann können Sie Dinge wie machen e: myIndexPath.row
und [myIndexPath row]
ja, die 'row' wird von' UITableView' Zeilen verwendet; Das 'Element 'wird von' UICollectionView'-Zellen verwendet. – holex