Редактировать: см. Ответ ниже.
Я наконец сдался и пришел сюда, чтобы спросить вас о моей проблеме ...
Я использую UIScrollView для скроллинговых меню с небольшимиконки.На каждой странице с включенной подкачкой есть значок в центре и 2 с половиной других видимых значка слева и справа.Я могу перейти от одного значка к соседнему, и это нормально, но дело в том, что если я сделаю быструю прокрутку, он не будет перемещаться из более чем трех значков, что составляет ширину экрана.
Я хотел бы иметь возможность прокручивать более 3 значков, и чтобы поведение магнита срабатывало только при замедлении.
Я пытался запланировать представление прокрутки для расчета его скорости,и установите для атрибута pagingEnabled значение NO, когда он движется быстро, и снова YES, когда он замедляется, но как только он установлен на YES, представление очень быстро возвращается в исходное положение, как если бы оно не обнаруживало, что я принесэто на новую страницу.Кто-нибудь знает, почему это происходит?И если у меня есть способ сказать представлению: «Хорошо, теперь подкачка включена, но посмотрите, вы на 15 страниц позже. Просто по центру на текущей странице, не возвращайтесь в начале».
Вот моя функция обновления (если она может помочь):
-(void)update:(ccTime)dt
{
float velocity = fabsf((self.previousOffset-self.scrollView.contentOffset.y)/dt);
self.previousOffset = self.scrollView.contentOffset.y;
CCLOG(@"Velocity: %f", velocity);
if(self.scrollView.pagingEnabled)
{
if(velocity > 100)
{
self.scrollView.pagingEnabled = NO;
}
}
else
{
if(velocity < 100)
{
self.scrollView.pagingEnabled = YES;
}
}
}