ビューでこのアニメーションを実行しようとしています。(0,0) にスケーリングするには、CGRectMake メソッドを使用してこのフレームを移動し、(1,1) にスケーリングします。だから私はこれを行うために次のコードを使用しました
-(void)startWalkAnimationStartWalkingBtnViewScaleToZero{
CGAffineTransform transform = StartWalkBtnView.transform;
StartWalkBtnView.transform=CGAffineTransformScale(transform,1.0f, 1.0f);
[UIView animateWithDuration: 0.7
delay: 0.6
options: (UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction)
animations:^{ StartWalkBtnView.transform = CGAffineTransformScale(transform, 0.0f, 0.0f);
}
completion:^(BOOL finished){
[UIView animateWithDuration:0.0
delay:0.0
options: UIViewAnimationOptionCurveEaseIn
animations:^{
StartWalkBtnView.frame=CGRectMake(92, 270, 120, 121);
}
completion:^(BOOL finished){
StartWalkBtnView.transform=CGAffineTransformScale(transform,0.0f, 0.0f);
[UIView animateWithDuration: 0.7
delay: 0.8
options: (UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction)
animations:^{ StartWalkBtnView.transform = CGAffineTransformScale(transform, 1.0f, 1.0f);
}
completion:^(BOOL finished){}
];
}];
}
];
}
しかし、このアニメーションを実行しようとした後、コンソールに次のエラーが表示されました。
Jun 17 12:02:49 Kareem.local MyAppName[3157] <Error>: CGAffineTransformInvert: singular matrix.
私はこれをグーグルで検索しすぎて、提供されたすべての解決策を試しました(ゼロ値に近い値にスケールする...)が、何も機能しませんでした。手伝ってくれてありがとう
更新: 次の行に問題があることがわかりました:
StartWalkBtnView.frame=CGRectMake(92, 270, 120, 121);
しかし、実際には問題の解決方法はわかりませんが、この行を削除すると、エラーなしでゼロにスケーリングされ、通常はゼロから戻ります