我一直在尝试为徽标构建一个从屏幕顶部到底部的入口效果,并在我的应用程序中加载新视图时保持在那里。我已经看过所有使用 NSTimer 来反弹图像的教程,但是一旦我的徽标到达底部,它就需要退出。我将阅读动画块代码,看看我的解决方案是否存在。
抱歉,我是新人,非常感谢您的帮助。
将徽标框架设置为顶部,然后:
[UIView beginAnimations: @"moveLogo" context: nil];
[UIView setAnimationDelegate:self];
[UIView setAnimationDuration:1.0];
[UIView setAnimationCurve: UIViewAnimationCurveLinear];
logoToMove.frame = CGRectMake( final frame at the bottom );
[UIView commitAnimations];
logoToMove
是您的徽标,给它一个出口并将其挂在 xib 中。因此,您将设置初始帧和动画中的最终帧。动画将完成剩下的工作。UIViewAnimationCurveLinear
如果您不喜欢,请更改为所需的。还有加速或减速运动的持续时间。
要在动画结束时删除视图,最简单的方法是使用 blocks :
logoToMove.frame = topRect;
[UIView animateWithDuration:duration
animations:^{
logoToMove.frame = bottomFrame;
}
completion:^(BOOL finished) {
[logoToMove removeFromSuperview];
}
];
这样做可以让您控制动画以及在单一方法完成后要执行的操作