如何将图像从屏幕顶部移动到底部并让它停留在Xcode/iOS中?

问题描述:

我一直在试图建立一个徽标的输入效果,从屏幕顶部到底部,并保留在那里,当我的应用程序加载一个新的视图。我已经看到所有使用NSTimer反射图像的教程,但是一旦我的图标触到底部,它就需要退出。我将阅读动画块代码,以查看我的解决方案是否驻留在那里。如何将图像从屏幕顶部移动到底部并让它停留在Xcode/iOS中?

道歉我是一个新人,非常感谢您的帮助。

设置标志帧到顶部,然后:

[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是您的标志,给它一个插座,并把它挂在厦门国际银行。 所以你将设置初始帧和动画 - 最后一帧。动画将完成剩下的工作。 如果您不喜欢,请将UIViewAnimationCurveLinear更改为所需的值。也是加快或减慢运动的持续时间。

+0

伟大的建议 - 非常感谢。 我试图找出CGRectMake中的正确参数(假设CGRectMake(10,10,300,400)意味着我从iOS设备屏幕的左上角开始,移动到右侧10,向下移动10(开始指向矩形) - 然后向右移动300多个,向下移动到底部400,形成完整矩形的对角。我看到奇怪的动画有时会向上移动,有时会向下移动...要去尝试UIViewAnimationCurveLinear – JimCSanJose 2012-07-11 03:16:47

+0

后续问题Teodor - 设置初始帧我会在界面生成器或代码中执行吗?如果在代码中我会使用类似logoToMove.origin.y = self.view .bounds.size.height ?? – JimCSanJose 2012-07-11 07:38:59

+0

伙计们,它比你想象的要容易,首先在任何你想要的地方以编程方式设置框架,这将是起点,然后使用上面的代码使对象移动到最终点你在第5行中定义:logoToMove.frame = bla-bla-bla)。就这样。而user1514009,你应该读一下CGRectMake。 – 2012-07-11 12:25:22

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

logoToMove.frame = topRect; 

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

做这样说,这使您能够控制动画,并在做什么,一旦它在已经完工一个简单的方法