私のアプリでは、画像を時計回りに0〜90(度)の間で回転させる必要があります。その逆も同様です。この最初の方法では、画像ビューを作成しています。
self.needleImageView = [[UIImageView alloc]initWithFrame:CGRectMake(300,155, 15,150)];
self.needleImageView.layer.anchorPoint = CGPointMake(0.5,1.0);// Shift the Needle center point to one of the end points of the needle image.
self.needleImageView.backgroundColor = [UIColor clearColor];
self.needleImageView.image = [UIImage imageNamed:@"Arrow.png"];
[self.view addSubview:self.needleImageView];
このコードを使用すると、画像は垂直方向になります。水平方向の画像を取得するには、CGAffineTransformMakeRotation(-M_PI / 2);を適用します。
self.needleImageView.transform=CGAffineTransformMakeRotation(-M_PI/2);
この後、画像を回転させるために次のアニメーションコードを使用しました//自動反転で0から90まで回転し、アニメーションを完了して画像を元の位置に維持した後、コードを完成させました
[UIView animateWithDuration: 0.8f
delay: 0.0f
options: (UIViewAnimationOptionAutoreverse)
animations: ^{
self.needleImageView.transform = CGAffineTransformRotate(self.needleImageView.transform,M_PI/2);
}
completion: ^(BOOL finished) {
self.needleImageView.transform = CGAffineTransformRotate(self.needleImageView.transform,-M_PI/2);
}];
このコードを実行すると、画像が水平位置になります。アニメーションボタンをクリックしてアニメーションを適用すると、画像の回転は270度から0度まで、またはその逆になります。アニメーション画像が270度(垂直方向)に配置された後
画像を0〜90度の間でのみ回転させたい。私の問題を明確に理解できるように、このコードを実行してください。助けてください...
前もって感謝します