IOS:CADisplay / UIScrollview和导航控制器

时间:2012-06-26 11:06:08

标签: uinavigationcontroller uiscrollview glkit cadisplaylink

所以我设法让我的可爱的GLKit 3D菜单使用UIScrollview,生活很顺利,直到我推送到另一个视图控制器并回来。

完全平稳的移动,移动到下一个控制器并返回。 UIScrollview没有很好地反弹或流动?

每次滚动视图移动和停止时,CADisplay链接都是初始化并且为零,这似乎工作正常,直到我推送到另一个控制器并返回。

如果我点击导致滚动视图移动并触发所有代码的项目,它会随机地重新启动。遗憾的是,如果我尝试在视图上解决此问题,那么它似乎没有做同样的事情。

- (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 个答案:

答案 0 :(得分:1)

所以,经过一整天的努力解决这个问题,它归结为

self.preferredFramesPerSecond = 60`

如果我动态地将其改为大约15到20,取决于我做什么,整个问题就会消失。