7

我怎么能UIImage在 20 秒内从屏幕底部移动到屏幕顶部(大约每秒 35 像素)我不是说你应该自己拖动它,但它应该会自动移动到顶部。谢谢

4

2 回答 2

19

首先,苹果文档是你的朋友。我在这里给你的所有信息都来源于此。Apple 还提供了很多示例代码,你一定要看看它。

您可以(轻松)完成此操作的方法是使用 UIView 动画。假设您的图像有一个 UIImageView,您可以使用该animateWithDuration:(NSTimeInterval)duration animations:...方法。

例如:

[UIView animateWithDuration:10.0f animations:^{
    //Move the image view to 100, 100 over 10 seconds.
    imageView.frame = CGRectMake(100.0f, 100.0f, imageView.frame.size.width, imageView.frame.size.height);
}];

您可以通过向动画添加越来越多的选项、获得完成块等来变得更漂亮。这一切都是通过 'animateWithDuration' 方法的变体来实现的。那里有大量关于 UIView 动画的教程和大量文档。

如果您不想使用块(上面的 ^{ ...code...} 位),您可以像这样运行动画:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:10.0f];
imageView.frame = ...
[UIView commitAnimations];
于 2012-04-08T21:09:02.540 回答
3

如果我理解它,您可以为自己的对象制作动画,在这种情况下尝试 beginAnimation

...
initial position

[UIView beginAnimation];
[UIView setAnimationDuration:dim/35.];
[UIView setAnimationCurve:[UIViewAnimationCurveLinear];

your animation

[UIView commitAnimations];
...

用这个计算 dim/35 计算第二位让你的动画 35px / s

于 2012-04-08T21:11:02.627 回答