ItemsScrollManager. CellAlignment
Что сделано
- В
ItemsScrollManagerдобавлена логика выравнивания ячеек в контейнере. Если раньше ячейки всегда притягивались к левому краю экрана, то теперь можно выбрать выравнивание по центру или правому краю. По умолчанию выбирается.leftдля обратной совместимости со старой версией - Отдельно вынесен из общей логики метод
getPageProgressдля удобства передачи прогресса вBeanPageControl - Демо-экран в Playbook
- Тесты на
getPageProgress
Как проверить:
В Example-приложении проследуйте в Flows -> ItemsScrollManager & BeanPageControl, поиграйтесь с параметрами
Demo
Кейс немного некорректного положения индикатора в Example:
- Доскроллить до 1го элемента
- Резко свайпнуть налево до 0го
- Повторить первые два шага
Left
https://github.com/surfstudio/iOS-Utils/assets/6246934/e7aa1b4d-5518-4719-8d5b-5c9b826e7492
Кейс с центрированием:
- Свайпнуть вправо, чтобы 2й слайд оказался посередине
- Слегка свайпнуть влево, чтобы 0й слайд оказался у левого борта
- С размахом свайпнуть влево. Ожидаю, что после этого 0й слайд по-прежнему будет у левого борта и меня не будет откидывать направо до 2го.
Center
https://github.com/surfstudio/iOS-Utils/assets/6246934/081f82a5-b385-4f3a-a6a4-0023b0bd21c3
UPD: Хотя, можно было не делать таких хитрых действий. Можно просто открыть Center mode и свайпнуть нелево. Не разбиралась, зависит ли это от девайса. iPhone 13 Pro Max, iOS 15.5
Поймала креш, iPhone 13 Pro Max, iOS 15.5 (Center, просто скроллим до конца):
Index out of range
Видео
https://github.com/surfstudio/iOS-Utils/assets/6246934/bdf785d9-7940-4b8e-8ebd-23ce6318277e
Кейс немного некорректного положения индикатора в Example:
- Доскроллить до 1го элемента
- Резко свайпнуть налево до 0го
- Повторить первые два шага
Left
Кажется, что проблема внутри BeanPageControl. Туда передаётся правильное значение прогресса - 0.0, но анимация не выполняется
Кейс с центрированием:
- Свайпнуть вправо, чтобы 2й слайд оказался посередине
- Слегка свайпнуть влево, чтобы 0й слайд оказался у левого борта
- С размахом свайпнуть влево. Ожидаю, что после этого 0й слайд по-прежнему будет у левого борта и меня не будет откидывать направо до 2го.
Center UPD: Хотя, можно было не делать таких хитрых действий. Можно просто открыть Center mode и свайпнуть нелево. Не разбиралась, зависит ли это от девайса. iPhone 13 Pro Max, iOS 15.5
Поправил. Проблема была в том, что значение округлялось не в ту сторону
Поймала креш, iPhone 13 Pro Max, iOS 15.5 (Center, просто скроллим до конца):
Index out of range Видео
При расчёте могла получиться отрицательная ширина страницы. Поправил это