こんにちは(以前の貴重な助けに感謝します)。
新しい問題:物理シミュレーションを作成していますが、おもちゃのバージョンで問題が発生しました。NSStimer timer
メソッドを呼び出すたびに、iPhone/タッチスクリーンにランダムな長方形を描画するだけtick
です。これらの呼び出しに。でインデックスを付けましたint frameCount
。目に見えるのは、2セットの画像が徐々に蓄積されていることです。1セットは偶数フレーム用で、もう1セットは奇数フレーム用です。frameCount
わずかに異なる位置で偶数と奇数のカウントを使用して画面に描画することにより、これを検証しました。したがって、フレーム内の画像と同期してカウントが前後に点滅しているのがわかります。省略コードは以下のとおりです。私はあなたが持っているかもしれないどんな提案にも感謝します。私には、2つのオフスクリーンバッファが必要であるように思われます。しかし、私はここで暗闇の中にいます:-)そして、これが真実であるとしても、私はそれらをマージする方法、または一方を他方にコピーする方法を知りません。
#define MAXFRAMES 1000
// UIViewのサブクラスであるFooBarの実装に関連する部分:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
// Start a timer that will call the tick method of this class
// 30 times per second -- slowed way down for diagnostics
timer = [NSTimer scheduledTimerWithTimeInterval:(3.0/1.0)
target:self selector:@selector(tick) userInfo:nil repeats:YES];
frameCount = 0;
self.clearsContextBeforeDrawing = NO;
NSLog(@"frame initialized");
}
return self;
}
- (void)tick
{
// Tell the view that it needs to re-draw itself
if (frameCount < MAXFRAMES) {
[self setNeedsDisplay];
frameCount++;
}
}
- (void)drawRect:(CGRect)rect
{
CGContextRef ctx = UIGraphicsGetCurrentContext();
// Draw a random rectangle with CGContextFillRect
// after calling CGContextSetRGBFillColor
// Both called with suitable random parameters
// Draw the frameCount for diagnostic purposes
}