为 View 设置动画很简单:

[UIView animateWithDuration:1.0
                     animations:^{theView.center = newCenter; theView.alpha = 0;}
                     completion:^(BOOL finished){
                         [theView removeFromSuperview];
                     }];

问题是,当我将其添加为 subview 时,我希望它淡入并看起来已经在移动。现在,它立即出现,然后移动并淡出。

因此,我需要将其初始alpha设置为零,在移动时快速将其淡入淡出,然后将其淡出。 UIView动画有可能吗?我不能在同一个对象上使用两个相互竞争的动画块,对不对?

最佳答案

您需要做的就是背对背应用2个动画。像这样的东西::

theView.alpha = 0;
[UIView animateWithDuration:1.0
                 animations:^{
                     theView.center = midCenter;
                     theView.alpha = 1;
                 }
                 completion:^(BOOL finished){
                     [UIView animateWithDuration:1.0
                                      animations:^{
                                          theView.center = endCenter;
                                          theView.alpha = 0;
                                      }
                                      completion:^(BOOL finished){
                                          [theView removeFromSuperview];
                                      }];
                 }];

所以在第一秒它会在移动时出现,然后在下一秒它会淡出

希望这可以帮助

关于ios - 移动UIView时淡入或淡出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14779633/

10-13 04:59