1

それで、素敵なGLKit 3DメニューをUIScrollviewで動作させることができました.別のView Controllerにプッシュして戻ってくるまで、人生は良いです.

完全にスムーズな動きなので、次のコントローラーに移動して戻ってきます。UIScrollview がバウンスまたはフローしませんか?

CADisplay Linkは、スクロールビューが移動および停止するたびに初期化およびnilされます。これは、別のコントローラーにプッシュして戻ってくるまでうまくいくようです。

ランダムにアイテムをクリックすると、スクロールビューが移動してすべてのコードが起動し、その後、元に戻ります。悲しいことに、ビューでこれを起動しようとすると、同じことをしないように見えました。

- (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;
    }
}
4

1 に答える 1

1

したがって、この問題を解決するために丸一日を費やした後、最終的には次のようになります。

self.preferredFramesPerSecond = 60`

私が何をするかに応じて、これを約 15 から 20 に動的に変更すると、問題全体が解消されます。

于 2012-06-26T15:56:04.477 に答える