Pour avoir le rectangle correspondant à une cellule d'une UICollectionView, il faut utiliser layoutAttributesForItemAtIndexPath, par exemple pour afficher un menu :
menu = [UIMenuController sharedMenuController];
menu.menuItems = items;
UICollectionViewLayoutAttributes * theAttributes = [collectionView layoutAttributesForItemAtIndexPath:indexPath];
CGRect frame = [collectionView convertRect:theAttributes.frame toView:collectionView];
[menu setTargetRect:frame inView:collection];// self.view];
[menu setMenuVisible:YES animated:YES];
Attention, j'utilisais avant IOS13 la fonction cellForIndexPath:, mais celle-ci renvoie nil avec IOS13.
Commentaires