brush51 brush51 - 6 months ago 189
iOS Question

how to access from UICollectionViewCell the indexPath of the Cell in UICollectionView

i want to animate the

UICollectionViewCell
when action is called.

i have done
UICollectionViewCell
in
Interface Builder
, the
UICollectionView
also.
Now i want to get the correct
indexPath
at my
actionBtnAddToCard
method.

thats the way i try it now (method in ProduktViewCell.m):

- (IBAction)actionAddToCart:(id)sender {
XLog(@"");

// see this line
NSIndexPath *indexPath = ??** how can i access the correct indexPath**??;
SortimentViewController *svc = [[SortimentViewController alloc] initWithNibName:@"SortimentViewController_iPad" bundle:[NSBundle mainBundle]];
[svc.collectionViewProdukte cellForItemAtIndexPath:indexPath];

[svc collectionView:svc.collectionViewProdukte didSelectItemAtIndexPath:indexPath];
}


SortimentViewController is the viewController which inherits the UICollectionView.

how to acces the correct indexPath?

UPDATE 1: edited post for better understanding.

Answer

if you know the view hierarchy it is easy.

UIButton *button = (UiButton *) sender;

if the button is like this - > UITableViewCell - > button

then you can get cell like this

UITableViewCell *cell = (UITableViewCell *)[button superview];

if the button is like this - > UITableViewCell - > content view -> button

UITableViewCell *cell = (UITableViewCell *)[[button superview] superview];

and finally index path can be extracted like this

NSIndexPath *indexPath = [self.table_View indexPathForCell:cell];