动画旋转的UIView使其消失

时间:2013-08-12 21:03:08

标签: ios animation uiview transform

我有一个10乘10的UIView,旋转45度以创建钻石形状。

以下是旋转视图的代码:

triangle = [[UIView alloc] initWithFrame:CGRectMake(35, kUserViewHeight - 5, 10, 10)];
triangle.backgroundColor = [UIColor coolBlue];
//triangle.center = CGPointMake(5.0, 5.0);
triangle.transform = CGAffineTransformMakeRotation(M_PI_2 / 2);

我故意评论了中心值,因为这会弄乱设置视图的位置。我完全清楚这可能是个问题。

视图显示完美,但是当我制作动画时,视图会移动到应有的位置,但在路上,它会消失。当我摆脱triangle.transform属性时,视图完美地动画并且不会消失,但显然它只是一个正方形而不是钻石。

这是动画代码:

[UIView animateWithDuration:kAnimationInterval animations:^{

        triangle.frame = CGRectMake(115, kUserViewHeight - 5, 10, 10);

}];

因为我计划移动钻石形状,所以设置中心会产生问题。如何旋转视图然后在屏幕上设置动画而不会消失?是否有某种特殊的方法来计算中心点到底需要它的位置?谢谢!

1 个答案:

答案 0 :(得分:0)

是的,你所做的是你将它旋转90度,正如你所说它正在消失,这样做可能有助于你 有一件事,你是动画订单很重要


 UIView* triangle = [[UIView alloc] initWithFrame:CGRectMake(35, 25, 10, 10)];
 triangle.backgroundColor = [UIColor colorWithRed:1 green:.4 blue:1 alpha:1]; // i am seeting diff color but not matter
 [UIView animateWithDuration:0.2 animations:^{
  triangle.frame = CGRectMake(115, 20, 10, 10);//kUserViewHeight = 25 - 5 (i am assuming)        
 //it must be after setting the frame, now put rotation for 45 degree

 triangle.transform = CGAffineTransformMakeRotation(M_PI/4);//it is M_PI/4 not M_PI /2

}];


 //  triangle.transform = CGAffineTransformMakeRotation(M_PI/4); //you can put it hear or within the animation block  


希望帮助你:)