При быстром изменении страницы путем нажатия на IOs PageControl текущий индикатор перемещается впереди страницы.

В моем проекте Xamarin.IOs у меня есть UIPageControl, который объединен с включенным подкачкой UICollectionView.

Я использую CardPageControl.PrimaryActionTriggered событие для обработки пролистывания страницы.

CardPageControl.PrimaryActionTriggered += OnPageControlTapped;

private async void OnPageControlTapped(object sender, EventArgs e)
{
    // SetContentOffset of the collection view
}

Но когда я быстро нажимаю на PageControl, текущий индикатор перемещается намного впереди текущей страницы, а затем, после того, как нажатие заканчивается, текущий индикатор перемещается в правильный индикатор.

введите описание изображения здесь

Как я могу это исправить?

1 ответ

Решение

Вы должны включить DefersCurrentPageDisplay. Это ложно по умолчанию.

CardPageControl.DefersCurrentPageDisplay = true;

Затем внутри OnPageControlTapped вызовите UpdateCurrentPageDisplay() для CardPageControl,

private async void OnPageControlTapped(object sender, EventArgs e)
{
    // SetContentOffset of the collection view

    CardPageControl.UpdateCurrentPageDisplay();
}

Это синхронизирует текущий индикатор PageControl с текущей страницей.

Другие вопросы по тегам