iOS-Utils icon indicating copy to clipboard operation
iOS-Utils copied to clipboard

ItemsScrollManager. CellAlignment

Open dmitryd20 opened this issue 2 years ago • 6 comments

Что сделано

  • В ItemsScrollManager добавлена логика выравнивания ячеек в контейнере. Если раньше ячейки всегда притягивались к левому краю экрана, то теперь можно выбрать выравнивание по центру или правому краю. По умолчанию выбирается .left для обратной совместимости со старой версией
  • Отдельно вынесен из общей логики метод getPageProgress для удобства передачи прогресса в BeanPageControl
  • Демо-экран в Playbook
  • Тесты на getPageProgress

Как проверить:

В Example-приложении проследуйте в Flows -> ItemsScrollManager & BeanPageControl, поиграйтесь с параметрами

Demo

dmitryd20 avatar Aug 16 '23 13:08 dmitryd20

Кейс немного некорректного положения индикатора в Example:

  1. Доскроллить до 1го элемента
  2. Резко свайпнуть налево до 0го
  3. Повторить первые два шага
Left

https://github.com/surfstudio/iOS-Utils/assets/6246934/e7aa1b4d-5518-4719-8d5b-5c9b826e7492

ZaytsevaMarina avatar Aug 18 '23 12:08 ZaytsevaMarina

Кейс с центрированием:

  1. Свайпнуть вправо, чтобы 2й слайд оказался посередине
  2. Слегка свайпнуть влево, чтобы 0й слайд оказался у левого борта
  3. С размахом свайпнуть влево. Ожидаю, что после этого 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

ZaytsevaMarina avatar Aug 18 '23 12:08 ZaytsevaMarina

Поймала креш, iPhone 13 Pro Max, iOS 15.5 (Center, просто скроллим до конца):

Index out of range

Снимок экрана 2023-08-18 в 15 39 47

Видео

https://github.com/surfstudio/iOS-Utils/assets/6246934/bdf785d9-7940-4b8e-8ebd-23ce6318277e

ZaytsevaMarina avatar Aug 18 '23 12:08 ZaytsevaMarina

Кейс немного некорректного положения индикатора в Example:

  1. Доскроллить до 1го элемента
  2. Резко свайпнуть налево до 0го
  3. Повторить первые два шага

Left

Кажется, что проблема внутри BeanPageControl. Туда передаётся правильное значение прогресса - 0.0, но анимация не выполняется

dmitryd20 avatar Sep 13 '23 12:09 dmitryd20

Кейс с центрированием:

  1. Свайпнуть вправо, чтобы 2й слайд оказался посередине
  2. Слегка свайпнуть влево, чтобы 0й слайд оказался у левого борта
  3. С размахом свайпнуть влево. Ожидаю, что после этого 0й слайд по-прежнему будет у левого борта и меня не будет откидывать направо до 2го.

Center UPD: Хотя, можно было не делать таких хитрых действий. Можно просто открыть Center mode и свайпнуть нелево. Не разбиралась, зависит ли это от девайса. iPhone 13 Pro Max, iOS 15.5

Поправил. Проблема была в том, что значение округлялось не в ту сторону

dmitryd20 avatar Sep 13 '23 14:09 dmitryd20

Поймала креш, iPhone 13 Pro Max, iOS 15.5 (Center, просто скроллим до конца):

Index out of range Видео

При расчёте могла получиться отрицательная ширина страницы. Поправил это

dmitryd20 avatar Sep 13 '23 14:09 dmitryd20