rechsteiner / Parchment

A paging view with a highly customizable menu ✨
MIT License
3.35k stars 417 forks source link

Add new PagingIndexable protocol to allow comparison between items #678

Closed rechsteiner closed 1 year ago

rechsteiner commented 1 year ago

When Parchment selects items outside of the visibleItems range, it needs to know whether that it is before or after the selected item so it can animate in the correct direction.

This worked fine when all items where of the same type, but if you mixed multiple types they needed to know about each other. If you used the build-in PagingIndexItem, it would not know about your custom items and the animation would be wrong. This is now fixed by introducing a new PagingIndexable protocol that PagingIndexItem used to compare itself against. This can then be used by custom items, like in the IconItem example.