0

現在のプロジェクトの性質には CADisplayLink の方が適していることはわかっていますが、CADisplayLink を実装して NSTimer を置き換える方法がよくわかりません。

以下は私のNSTimerのコードです

Movement = [NSTimer scheduledTimerWithTimeInterval:0.002 target:self selector:@selector(BarMoving)       userInfo:nil repeats:YES];

同じ機能をより効率的に実行する CADisplayLink を作成するにはどうすればよいですか?

4

1 に答える 1

0

モノを作成します。

_displayLink = [CADisplayLink displayLinkWithTarget:self 
                   selector:@selector(BarMoving)];

実行を開始します。

[_displayLink addToRunLoop:[NSRunLoop mainRunLoop]
    forMode:NSDefaultRunLoopMode];

...これにより、実行ループがデフォルトモードの場合は常に、表示リンクがBarMovingメインの実行ループ (メインスレッドに関連付けられているため、メインキューに関連付けられているループ) でへの呼び出しを発行します。したがって、ユーザーが指を下にスクロールすると、スクロールビューが一時停止します。NSTimerデフォルトの動作は同じです。

于 2015-01-03T20:23:32.547 に答える