iPhone - 某个领域的动画

时间:2013-02-06 08:16:16

标签: ios uiview uianimation

在我的项目中,我必须创建某种特定的动画。我的想法是我必须移动两个UILabel,它们都应该下降,但最初一个在另一个上面。最初我还有一个矩形区域,底部的UILabel位于其中,当动画开始时,它应该看起来像两个UILabel都在某种旋转轮上,当它下降时,底部消失(因为它不能通过那个矩形窗口看到了,而顶部窗口取而代之。

我试图通过计时UILabels的淡入淡出和淡出来达到这个效果,但这似乎看起来很糟糕。我想解决它的唯一方法是为矩形周围的区域设置动画,但只在该区域显示动画。你能给我一些关于怎么做的建议吗?

这是一张照片:

Here is a pic:

这是一些代码,我试图做到这一点:

[UIView animateWithDuration:0.3 animations:^{
encouragementLabel.alpha = 1.0;
encouragementLabel.center = CGPointMake(encouragementLabel.center.x,encouragementLabel.center.y+40);}];

[UIView animateWithDuration:0.3 animations:^{
answer.alpha = 0;
answer.center = CGPointMake(answer.center.x, answer.center.y+40);}];

2 个答案:

答案 0 :(得分:1)

尝试添加标签作为矩形视图的子视图。确保矩形视图的clipsToBounds属性或layer.masksToBounds设置为YES,这将隐藏矩形边界之外的任何子视图。现在,当您为标签设置动画时,它们会在离开矩形时自动隐藏,并在它们移入矩形时显示。

答案 1 :(得分:0)

你可以试试这个......

[UIView animateWithDuration:0.3 animations:^{
       encouragementLabel.alpha = 1.0;
       encouragementLabel.center = 
           CGPointMake(encouragementLabel.center.x,encouragementLabel.center.y+40);
} completion:^(BOOL finished) {
       [UIView animateWithDuration:0.3 animations:^{
       answer.alpha = 0;
       answer.center = CGPointMake(answer.center.x, answer.center.y+40);}];
}];