UIViewに、あるポイントから別のポイントへのUIButtonの移動をアニメーション化するカテゴリがあります。実行中ですが、ボタンがまったく動かない。アニメーションは成功しているように見えますが、動きはまったくありません。
ボタンは繰り返しNSTimerによって呼び出され、ボタンがアニメーション化されるポイントまでカウントダウンします(残りのポイントがアニメーション化されている場合、残りのポイントが正しいかどうかを1秒ごとに確認します)。マイクのレベルを操作するために0.01秒ごとに呼び出されるタイマーもありますが、周波数を上げても機能しません。
私のアニメーションコードは大丈夫だと思いますが、何かがアニメーションの表示を妨げています。アニメーション化する前にviewDidLoadを表示すると、アニメーション化されます(ただし、エンドポイントから開始し、ストーリーボードのボタンを配置した場所までアニメーション化されます)が、プログラムのフローでアニメーション化すると機能しません。
カテゴリは私のエンドポイントを正しく上回り、5秒後に「完了」しました。
カテゴリ:
@implementation UIView (Animation)
- (void) moveTo:(CGPoint)destination duration:(float)secs option:(UIViewAnimationOptions)option
{
NSLog(@"moveTo Category. destination: %@ and duration %f", NSStringFromCGPoint(destination), secs);
[UIView animateWithDuration:secs delay:0.0 options:option
animations:^{
self.frame = CGRectMake(destination.x,destination.y, self.frame.size.width, self.frame.size.height);
NSLog(@"self.frame: %@", NSStringFromCGRect(self.frame));
}
completion:^(BOOL finished){
NSLog(@"done");
}];
}
@end
アニメーション化するコード:
[rewardAnimationButton moveTo:CGPointMake(100, 100) duration:5.0 option:0];