TextureGroup / Texture

Smooth asynchronous user interfaces for iOS apps.
https://texturegroup.org/
Other
8.03k stars 1.3k forks source link

Texture doesn't support custom UICollectionViewLayout. #1959

Open ekazaev opened 3 years ago

ekazaev commented 3 years ago

Texture doesnt support custom UICollectionViewLayout as it is hardcoded to support only UICollectionViewFlowLayout.

ASCollectionViewProxy intercepts the selector collectionView:layout:sizeForItemAtIndexPath: and propagates the values directly to the UICollectionViewFlowLayout in the prepare method. If any other layout has a different method signature or a different ways of setting the item sizes, ASCollectionView stops to work. https://developer.apple.com/documentation/uikit/uicollectionviewdelegateflowlayout/1617708-collectionview

The second issue is that _ASCollectionViewCell does not implement preferredLayoutAttributesFitting so it does not propagate the desired size in a way that is natural for the UICollectionViewLayout after it was calculated. That must be fixed to support any other custom UICollectionViewLayout.

Please see the example project. Just uncomment one or another solution in TextureController.swift TestTexture.zip

jeffersonsetiawan commented 3 years ago

Didn't know much about this, maybe you can take a look at ASCollectionViewLayoutInspecting?