Dans une UICollectionView, pour faire un menu, le plus simple est d'utiliser une des fonctions delegate standard. La création de cette fonction lancera automatiquement un gestionnaire d'appuie long, et l'affichage du menu au bon endroit.
- (UIContextMenuConfiguration *)collectionView:(UICollectionView *)collectionView contextMenuConfigurationForItemAtIndexPath:(nonnull NSIndexPath *)indexPath point:(CGPoint)point {
return [UIContextMenuConfiguration configurationWithIdentifier:nil
previewProvider:nil
actionProvider:^UIMenu *(NSArray<UIMenuElement *> *suggestedActions) {
return [UIMenu menuWithTitle:@""
children:@[
[UIAction actionWithTitle:@"Utiliser l'image"
image:nil
identifier:nil
handler:^(UIAction * _Nonnull action) {
[self useImageAtIndexPath:indexPath];
}],
[UIAction actionWithTitle:@"Supprimer l'image"
image:nil
identifier:nil
handler:^(UIAction * _Nonnull action) {
[self delImageAtIndexPath:indexPath];
}],
]];
}];
}
Commentaires