无法在 iOS8 中显示 UICollectionView 菜单
Posted
技术标签:
【中文标题】无法在 iOS8 中显示 UICollectionView 菜单【英文标题】:Unable to show UICollectionView menu in iOS8 【发布时间】:2014-09-08 18:58:31 【问题描述】:我正在尝试让 UIMenu 出现在集合视图中。
我已经设置了我的菜单
UIMenuItem* deleteItem = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"DELETE", @"Supprimer") action:@selector(deleteShow:)];
UIMenuItem* archiveItem = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"ARCHIVE", @"Archiver") action:@selector(archiveShow:)];
UIMenuItem* unarchiveItem = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"UNARCHIVE", @"Restaurer") action:@selector(unArchiveShow:)];
[[UIMenuController sharedMenuController] setMenuItems:@[deleteItem,archiveItem,unarchiveItem]];
我已经在我的 Collection View Delegate 中实现了以下方法:
- (BOOL)collectionView:(UICollectionView *)collectionView shouldShowMenuForItemAtIndexPath:(NSIndexPath *)indexPath
- (BOOL)collectionView:(UICollectionView *)collectionView canPerformAction:(SEL)action forItemAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender
- (void)collectionView:(UICollectionView *)collectionView performAction:(SEL)action forItemAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender
前两个总是返回 YES。 但是长按没有菜单显示。甚至没有标准的剪切/复制/粘贴菜单。 有没有人经历过这样的事情?
提前致谢
【问题讨论】:
【参考方案1】:花了一些时间解决这个问题。发现如果在UICollectionViewCell的子类中不实现“deleteShow:”等方法,菜单项就不会显示出来。
【讨论】:
以上是关于无法在 iOS8 中显示 UICollectionView 菜单的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS swift 中的 ARSCNView 中显示 uicollection 视图
UICollection 在使用 Swift 3 显示图像时非常慢
Table Cell 中的 UICollection 视图在 Swift 3 中不显示图像