UICollectionView iOS 9 issue on project with RTL languages support

It seems like Apple’s new feature of auto-flip interface on RTL languages cause problems when using UICollectionView.

I used constraints of type Trailing/Leading for the collection view and they switched their values, as they should, on RTL language.

  • How to animate UIView in z-axis direction?
  • UICollectionView datasource methods not getting called, but are being set in the init
  • iOS 8 GM does not update constraints on collection views
  • UICollectionView Cell Spacing based on device sceen size
  • UICollectionView cell views overlapping
  • How do I display the standard checkmark on a UICollectionViewCell?
  • The problem is that the data actually presented is of the last indexPath in the collection’s data source but the UIScrollView.contentOffset.x of the first cell is 0.

    A proper behaviour would have been one of the following:

    1. Displaying the first indexPath correctly and switching the direction of the scroll (to the right) – Best option
    2. Not flipping the UI/Constraints so the presented-data / indexPath / scrollView.contentOffset.x will be synchronised – Option that disabling the RTL support.
    3. Presenting cell and data of the last indexPath but fixing the scrollView.contentOffset.x to represent the last cell position also.

    I guess Apple might fix it sometime in the future but meanwhile we’ll have to use workarounds like reversing array and/or scrolling to the last object.