如何将图像从屏幕顶部移动到底部,并在Xcode/iOS中保持在那里?

如何将图像从屏幕顶部移动到底部,并在Xcode/iOS中保持在那里?,ios,xcode,Ios,Xcode,我一直在尝试建立一个输入效果,使徽标从屏幕的顶部到底部出现,并在应用程序中加载新视图时保持不变。我看过所有使用NSTimer反弹图像的教程,但一旦我的徽标触底,它就需要退出。我将阅读动画块代码,看看我的解决方案是否驻留在那里 抱歉,我是新来的,非常感谢您的帮助 将徽标框架设置为顶部,然后: [UIView beginAnimations: @"moveLogo" context: nil]; [UIView setAnimationDelegate:self]; [UIView setAni

我一直在尝试建立一个输入效果,使徽标从屏幕的顶部到底部出现,并在应用程序中加载新视图时保持不变。我看过所有使用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
更改为所需的。还有加速或减慢移动的持续时间。

要在动画结束时删除视图,最简单的方法是使用块:

logoToMove.frame = topRect;

[UIView animateWithDuration:duration 
                 animations:^{
                    logoToMove.frame = bottomFrame;
                 } 
                 completion:^(BOOL finished) {
                    [logoToMove removeFromSuperview];
                 }
];

这样做可以让你控制动画,以及在动画完成后用一种方法做什么

非常好的建议-非常感谢。我正试图找出CGRectMake中的正确参数(假设CGRectMake(10,10300400)意味着我从iOS设备屏幕的左上角开始,向右移动10,向下移动10(矩形的起点)-然后向右移动300多个,向下移动400多个,这是形成完整矩形的另一个角。我看到一些奇怪的动画有时向上移动,有时向下移动…我将尝试UIViewAnimationCurveLinear到其他位置。再次感谢!为您跟进问题Teodor-要设置初始帧,我会在中这样做吗界面生成器还是代码中?如果在代码中我会使用logoToMove.origin.y=self.view.bounds.size.height?伙计们,这比你想象的要简单。首先以编程方式在任何地方设置框架,这将是起点。然后使用上面的代码使对象移动到终点(您在第5行中定义:logoToMove.frame=bla bla bla bla bla bla)。仅此而已。对于用户1514009,您应该阅读一些关于CGRectMake的内容。感谢Teodor-我将我的初始帧设置为不正确的大小-现在工作得很好-再次感谢您明智的建议!!