これまでのところ、Core Animation にこのようなコードがあり、アニメーション化する場所のパラメーターが最初に設定されているのを見たことがあります。
- (void) startTopLeftImageViewAnimation{
/* Start from top left corner */
[self.xcodeImageView1 setFrame:CGRectMake(0.0f,0.0f, 100.0f, 100.0f)];
[self.xcodeImageView1 setAlpha:1.0f];
[UIView beginAnimations:@"xcodeImageView1Animation" context:(__bridge void *)self.xcodeImageView1];
/* 3 seconds animation */
[UIView setAnimationDuration:3.0f];
/* Receive animation delegates */ [UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector: @selector(imageViewDidStop:finished:context:)];
/* End at the bottom right corner */ [self.xcodeImageView1 setFrame:CGRectMake(220.0f,
350.0f, 100.0f,
[self.xcodeImageView1 setAlpha:0.0f];
[UIView commitAnimations];
}
ただし、グラフィックがマウス カーソルに追従するアニメーションを作成したいと考えています。これは、アニメーションが常にマウス ポインターの xy 値を受け取っていることを意味します。
このような「手動」アニメーションを実行し、マウスの位置を移動するたびに drawRect を呼び出すより良い方法はありますか? これに Core Animation を使用できますか?
- (void)drawRect:(NSRect)rect
{
// Drawing code here.
[[NSColor whiteColor] set];
NSRectFill( rect );
[self drawCircleAtPoint:_circlePt];
}
- (void) drawCircleAtPoint:(CGPoint) point {
NSBezierPath* thePath = [NSBezierPath bezierPath];
NSRect nrect = NSMakeRect(point.x, point.y, 50, 50);
[thePath appendBezierPathWithOvalInRect:nrect];
[[NSColor blackColor] set];
[thePath stroke];
}
これに関して助けてくれてありがとう。