有方法來創建自定義動畫? - 例如:如果我有一個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