1

Так что мне удалось получить мое прекрасное меню GLKit 3D, работающее с UIScrollview, и жизнь хороша, пока я не подтолкнулся к другому контроллеру представления и не вернусь.IOS: CADisplay/UIScrollview и навигационный контроллер

Так полностью плавное движение, переход к следующему контроллеру и возврат. UIScrollview не отскакивает или не течет красиво?

CADisplay Link - это init и nil'd каждый раз, когда scrollview перемещается и останавливается, и кажется, что он работает нормально, пока я не нажму на другой контроллер и не вернусь.

Случайно, если я нажимаю на элемент, который заставляет scrollview перемещаться и сбрасывает весь код, он снова возвращается к жизни. к сожалению, если я попытаюсь снять это с точки зрения, оказалось, что он не делает то же самое.

- (void)startDisplayLinkIfNeeded 
{ 
    if (!self.displayLink) 
    { 
     self.displayLink = [CADisplayLink displayLinkWithTarget:self.view selector:@selector(display)]; 
     [self.displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes]; 
    } 
} 

- (void)stopDisplayLink 
{ 
    if (self.displayLink) 
    { 
     [self.displayLink removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes]; 

     [self.displayLink invalidate]; 
     self.displayLink = nil; 
    } 
} 

ответ

1

Итак, после того, как целый день, пытаясь выработать эту проблему, она сводится к

self.preferredFramesPerSecond = 60` 

Если я динамически изменять это примерно от 15 до 20 в зависимости от того, что я делаю, все проблема уходит.