UICollectionView interactive reordering?

Is it possible to reorder collection view cells similar to the way the home screen works on the Apple TV?


The APIs appear to be all there, but I tried a bunch of stuff (setting installsStandardGestureForInteractiveMovement to true, returning true from canMoveItemAtIndexPath, implementing moveItemAtIndexPath, setting editing to true) in the UIKitCatalog sample and didn't observe any difference. Perhaps I don't know what the "standard gesture" is, or some other delegate methods need to be implemented as well, or maybe it just doesn't work on tvOS. Does anyone know if this is possible and if so, how to make it happen?

Replies

UICollectionView and the default layout manager for UICollectionView doesn't come with those features built in.


However, the WWDC collection view videos and the related sample code does a pretty good job explaining how to implement them.

I am looking at the Advanced Collection View sample. It's 11,000 lines of code and is strictly iOS.


I'm kind of hoping for a quick yes/no answer to "is it possible on tvOS" before I waste too much time on it.

At this point I'm leaning towards "not possible", at least not trivially as it is for iOS. I found a sample project on GitHub (UICollectionView-Move-Drag-Item-iOS9) which provides a bare bones implementation for iOS. I ported that to tvOS but no gesture I can come up with allows reordering.

Is it possible now in 2020? I see that the delegate methods are available for tvOS, but it's available in tvOS 9.0+.