Implementing `shouldBeginMultipleSelectionInteractionAt` irreversibly turns on single-finger band selection on UICollectionView

Originator:rfrenna
Number:rdar://FB9833896 Date Originated:05/01/2022
Status:Open Resolved:
Product:iOS - UIKit Product Version:15.0+
Classification: Reproducible:Yes
 
Implementing `collectionView(_:shouldBeginMultipleSelectionInteractionAt:)` irreversibly turns on single-finger band/multi selection which works on phones as well. This seems to be handled by `UIMultiSelectInteraction` (not `UIBandSelectionInteraction`, which doesn't work on phones).

Note that this is different than the two-finger band selection gesture discussed in your documentation (which should be able to be disabled by returning `false` in `shouldBeginMultipleSelectionInteractionAt`) -- this works by just dragging a single finger across a collection view with multiple selection enabled. Removing the implementation of the delegate method removes this behavior.

Please either make this follow the value returned by `shouldBeginMultipleSelectionInteractionAt` or add a separate flag to disable it. Thanks.

Comments

Steps to reproduce:

  • Have a collection view with allowsSelection and allowsMultipleSelection set to YES.
  • Implement a dummy collectionView(_:shouldBeginMultipleSelectionInteractionAt:) delegate method which always returns NO.
  • Drag your finger across collection view elements. Notice how they are all selected as you drag along.

Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!