ドラッグできる私のビューの1つで、不適切な場所にドロップすると、マウスがダウンしたときに記録された元のフレームに戻ります。これは、無アニメーションで数日間正常に動作してきたが、私はアニメーションを紹介することにしました:NSAnimationEaseOut NSAnimationEaseOutで奇妙な動作を使用する
-(void)dropToFrameOrigin:(NSPoint)newFrameOrigin animated:(BOOL)animated {
if (animated) {
NSRect newFrameRect = [self frame];
newFrameRect.origin = newFrameOrigin;
NSDictionary *animationInfo = [NSDictionary dictionaryWithObjectsAndKeys:self, NSViewAnimationTargetKey,
[NSValue valueWithRect:[self frame]], NSViewAnimationStartFrameKey,
[NSValue valueWithRect:newFrameRect], NSViewAnimationEndFrameKey,
nil];
NSViewAnimation *animation = [[NSViewAnimation alloc] initWithViewAnimations:[NSArray arrayWithObject:animationInfo]];
[animation setDuration:0.2];
[animation setAnimationCurve:NSAnimationLinear];
[animation startAnimation];
[animation release];
} else {
[self setFrameOrigin:newFrameOrigin];
}
}
これはNSAnimationLinearでの作業、およびデフォルトNSAnimationEaseInOut、しかし、私が実際に欲しいのは、単に感です私がNSAnimationEaseOutがやろうとしていると仮定した減速。何らかの理由で、私はそれを使用すると、ビューはすぐに終了する必要があるフレームにスナップし、次にカーソルがそれをドロップした場所(開始フレーム)にスライドしてアニメーションを行い、終了フレームにスナップバックする必要があります。
他のすべてのモード(NSAnimationLinear、NSAnimationEaseIn、NSAnimationEaseInOut)は正常に機能しているようです。 NSAnimationEaseOutの目的を誤解していますか?