UIImageViewを最初に回転させてフレームをアニメーション化すると、現在問題が発生しています。そのフレームをtarget_positionにアニメーション化するとすぐに、画像のサイズが変更されます。それはUIViewでフレームを変更してUIImageViewを回転するアニメーションでサイズが変更される
私は現在の回転のために使用するコードがある(回転角度に応じた)のは広いと高い取得:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if (!isAnimating) {
isAnimating = YES;
UITouch *t = [[touches allObjects] lastObject];
float angle = atan2([t locationInView:self.view].y - player.frame.origin.y, [t locationInView:self.view].x - player.frame.origin.x) * 180/M_PI;
NSLog(@"Angle: %f", angle);
CGAffineTransform cgCTM = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(angle));
[player setTarget_position:CGRectMake([t locationInView:self.view].x, [t locationInView:self.view].y, player.image.size.width-angle, player.image.size.height+angle)];
[UIView beginAnimations:@"rotatePlayer" context:nil];
[UIView setAnimationDuration:2];
player.transform = cgCTM;
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(playerFinishedRotating)];
[UIView commitAnimations];
}
}
回転自体は正常に動作します。そして、これはplayerFinishedRotating関数のコードです:私にとって
- (void)playerFinishedRotating {
[UIView beginAnimations:@"rotatePlayer" context:nil];
[UIView setAnimationDuration:3];
[player setFrame:[player target_position]];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(playerFinishedAnimating)];
[UIView commitAnimations];
}
それは私のUIImageVieの変化の大きさは、それを回転させながら、その種の論理です。しかし、私はどのように与えられたデータ(回転角度f.e.)で私のtarget_positionフレームの幅と高さの値を調整するには固執しています。
他の人のための答えは明白かもしれので、私は数学の天才ないんだけど、私にとって、それはありません:(
ホープ誰かが助けることができますし、さらに質問がありましたら、コメントをLEVEしてください。