Sasha Prent Sasha Prent - 5 months ago 44
iOS Question

how to get indexPath for cell which is located in the center of UICollectionView

How can i find

indexPath
for
cell
in the middle of
UICollectionView
?

I have horizontal scrolling and only one big
cell
is visible (partially two other
cell
s on the sides are visible as well).
I need to delete
cell
located in the center (means - current
cell
) without touching it.

Only pressing "Trash" button and confirm Delete. But now it delete only first
cell
s.

- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex {
if (buttonIndex == actionSheet.destructiveButtonIndex) {
initialPinchPoint = ????????

self.tappedCellPath = [self.collectionView indexPathForItemAtPoint:initialPinchPoint];

Technique *technique = [arrayOfTechnique objectAtIndex:self.tappedCellPath.row];

[self deleteData:[NSString stringWithFormat:@"DELETE FROM TECHNIQUES WHERE TECHNIQUENAME IS '%s'",[technique.techniquename UTF8String]]];

[arrayOfTechnique removeObjectAtIndex:self.tappedCellPath.row];

//[arrayOfTechnique removeObjectAtIndex:[custom_layout ]];
[self removeImage:technique.techniquename];

[self.collectionView performBatchUpdates:^{
[self.collectionView deleteItemsAtIndexPaths:[NSArrayarrayWithObject:self.tappedCellPath]];
} completion:nil];

[self checkArrayCount];
}
}

Answer

Like you did yourself, indexPathForItemAtPoint is a good way of finding the index path of the element you're interested in. If your question is: how do i know the coordinates of this point? Then you should try with (using the same name you gave it in your code snippet):

initialPinchPoint = CGPointMake(self.collectionView.center.x + self.collectionView.contentOffset.x, 
                                self.collectionView.center.y + self.collectionView.contentOffset.y);
Comments