IOS: CADisplay / UIScrollview и навигационный контроллер
Таким образом, мне удалось заставить мое прекрасное 3D-меню GLKit работать с UIScrollview, и жизнь хороша, пока я не нажму на другой контроллер представления и не вернусь.
Так что абсолютно плавное движение, переходите к следующему контроллеру и возвращайтесь. UIScrollview не подпрыгивает или течет красиво?
CADisplay Link - это init и nil'd каждый раз, когда прокрутка перемещается и останавливается, и это, кажется, работает нормально, пока я не нажму на другой контроллер и не вернусь.
Случайно, если я нажимаю на элемент, который заставляет представление прокрутки перемещаться и запускать весь код, он затем возвращается к жизни. к сожалению, если я попытаюсь включить это в представлении, он не будет делать то же самое.
- (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, в зависимости от того, что я делаю, вся проблема исчезнет.