有方法来创建自定义动画? - 例如:如果我有一个UIView放在屏幕上的点(100,100),我想创建动画,UIView移动到点(200,200)的动画是1秒。 我不想在动画代码中使用此类型:创建自定义动画
[UIView animateWithDuration:1 animations: ^{
myView.center = CGPointMake(200, 200);
}];
我要求不同的方式动态显示。
有方法来创建自定义动画? - 例如:如果我有一个UIView放在屏幕上的点(100,100),我想创建动画,UIView移动到点(200,200)的动画是1秒。 我不想在动画代码中使用此类型:创建自定义动画
[UIView animateWithDuration:1 animations: ^{
myView.center = CGPointMake(200, 200);
}];
我要求不同的方式动态显示。
是的,有很多不同的方式做动画。您发布的代码是最干净,最简单的方法。
如果您使用自动版式,那么你应该把水平和垂直位置制约你的看法,将它们连接到插座,动画约束的价值,而不是直接移动视图。
您还可以使用核心动画和视图的层直接动画。看看CAAnimation类家庭。特别是你应该看看CABasicAnimation。然而,使用CAAnimation对象很棘手,有很多问题。
为什么你不希望使用animateWithDuration:animations:
方法?该方法animateWithDuration:delay:options:animations:completion:'
有一个“长形式”,它提供了更多的控制。另外还有一个新的基于关键帧动画视图的方法: animateKeyframesWithDuration:delay:options:animations:completion:
以及动画弹簧效应,和其他几个人。
我通常的做法是使用UIView动画,如果我可以做这个工作,并且只有下拉到较低级别的CAAnimation动画,如果有什么我不能做的基于视图的动画。 (下面的视图为基础的动画方法生成CAAnimation对象,并将它们应用到您的视图的图层,但有一个更容易使用。)
我不明白为什么你不想使用UIView动画,或者你可以用于例如
CABasicAnimation *animation = [CABasicAnimation animation];
animation.keyPath = @"position.x";
animation.fromValue = @0;
animation.toValue = @100;
animation.duration = 1;
[myView.layer addAnimation:animation forKey:@"basic"];
为什么不使用这种类型的代码?有什么你无法完成的吗? – 2014-11-25 15:55:41