Бесконечная прокрутка -setContentOffset :останавливает замедление UIScrollView

Я создаю приложение для iPhone с большим панорамным изображением на 360 градусов. Панорама представляет собой CATiledLayer в UIScrollView.

Я пытаюсь реализовать бесконечную прокрутку изображения (только по горизонтали ). Я сделал это, создав подкласс UIScrollView и реализовав setContentOffset :и setContentOffset :анимированные :, и это отлично работает, когда пользователь перетаскивает прокрутку. Однако, когда пользователь поднял палец и прокрутка замедляется, изменение contentOffset приводит к мгновенной остановке замедления.

- (void)setContentOffset:(CGPoint)contentOffset 
{    
    CGPoint tempContentOffset = contentOffset;

    if ((int)tempContentOffset.x >= 5114)
    {
        tempContentOffset = CGPointMake(1, tempContentOffset.y);
    }
    else if ((int)tempContentOffset.x <= 0)
    {
        tempContentOffset = CGPointMake(5113, tempContentOffset.y);
    }

    [super setContentOffset:tempContentOffset];    
}

Есть ли способ изменить contentOffset, не влияя на замедление?

Было предложено здесь , что переопределение setContentOffset:(не setContentOffset :анимированного :)устраняет эту проблему, но я не могу заставить это работать.

Я также безуспешно пробовал использовать scrollRectToVisible :анимированный :.

Будем признательны за любые идеи по устранению этой проблемы. Спасибо!

РЕДАКТИРОВАТЬ:

Код для scrollViewDidScroll:

-(void)scrollViewDidScroll:(PanoramaScrollView *)scrollView
{
    [panoramaScrollView setContentOffset:panoramaScrollView.contentOffset];
}   

Я также пробовал это:

-(void)scrollViewDidScroll:(PanoramaScrollView *)scrollView
{
    CGPoint tempContentOffset = panoramaScrollView.contentOffset;

    if ((int)tempContentOffset.x >= 5114)
    {
        panoramaScrollView.contentOffset = CGPointMake(1, panoramaScrollView.contentOffset.y);
    }
    else if ((int)tempContentOffset.x == 0)
    {
        panoramaScrollView.contentOffset = CGPointMake(5113, panoramaScrollView.contentOffset.y);
    }
}

6
задан Community 23 May 2017 в 11:45
поделиться