Как отключить анимацию при длительном нажатии контекстного меню для CollectionView iOS Swift?

В моем ViewController есть три UICollectionView для всех UICollectionView, которые я создал contextMenu, но для последнего UICollectionView я не хочу показывать меню и для <return UIContextMenuConfiguration(identifier: nil, previewProvider: nil)> все работает хорошо, но для эта анимация длительного нажатия UICollectionview не отключена.

Как отключить анимацию долгого нажатия для последнего UICollectionView? Это действительно просто, но я не могу удалить регистр по умолчанию.

Пример моего кода:

      func collectionView(_ collectionView: UICollectionView, contextMenuConfigurationForItemAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration? {
        
        switch collectionView {
        case favoriteCollectionView:
             return UIContextMenuConfiguration(identifier: nil, previewProvider: nil) {...}
        case allCollectionView:
             return UIContextMenuConfiguration(identifier: nil, previewProvider: nil) {...}
        default:
              // This menu empty and doesn't show but the animation of long pressed not disabled how to fix this?
             return UIContextMenuConfiguration(identifier: nil, previewProvider: nil)
        }
    }

1 ответ

Решение

Проходить return nil помимо return UIContextMenuConfiguration(identifier: nil, previewProvider: nil)

      func collectionView(_ collectionView: UICollectionView, contextMenuConfigurationForItemAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration? {

    switch collectionView {
    case favoriteCollectionView:
        return UIContextMenuConfiguration(identifier: nil, previewProvider: nil) {...}
    case allCollectionView:
        return UIContextMenuConfiguration(identifier: nil, previewProvider: nil) {...}
    default:
        return nil //<-- HERE
    }
}
Другие вопросы по тегам