如何将图像从屏幕顶部移动到底部并让它停留在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
更改为所需的值。也是加快或减慢运动的持续时间。
答
要在动画的最后删除的视图,最简单的方法是使用块:
logoToMove.frame = topRect;
[UIView animateWithDuration:duration
animations:^{
logoToMove.frame = bottomFrame;
}
completion:^(BOOL finished) {
[logoToMove removeFromSuperview];
}
];
做这样说,这使您能够控制动画,并在做什么,一旦它在已经完工一个简单的方法
伟大的建议 - 非常感谢。 我试图找出CGRectMake中的正确参数(假设CGRectMake(10,10,300,400)意味着我从iOS设备屏幕的左上角开始,移动到右侧10,向下移动10(开始指向矩形) - 然后向右移动300多个,向下移动到底部400,形成完整矩形的对角。我看到奇怪的动画有时会向上移动,有时会向下移动...要去尝试UIViewAnimationCurveLinear – JimCSanJose 2012-07-11 03:16:47
后续问题Teodor - 设置初始帧我会在界面生成器或代码中执行吗?如果在代码中我会使用类似logoToMove.origin.y = self.view .bounds.size.height ?? – JimCSanJose 2012-07-11 07:38:59
伙计们,它比你想象的要容易,首先在任何你想要的地方以编程方式设置框架,这将是起点,然后使用上面的代码使对象移动到最终点你在第5行中定义:logoToMove.frame = bla-bla-bla)。就这样。而user1514009,你应该读一下CGRectMake。 – 2012-07-11 12:25:22