を使用している場合は 、パラメータをにanimateWithDuration:delay:options:animations:completion:
設定できます。デフォルトにはファンキーな曲線がありますが、それはまさにそのように聞こえます。線形。スピードアップもスピードダウンもありません。また、はい、アニメーションビューの場所にアクセスする方法があります。そのプレゼンテーション層(アニメーションの提示に使用される層)にアクセスし、そのフレームの位置を使用します。options
UIViewAnimationOptionCurveLinear
UIViewAnimationOptionCurveLinear
編集:これは、ピタゴラスの定理を使用してビューから目的地までの距離を計算し、線形曲線を使用してビューを目的地までアニメーション化するブロックベースのアニメーションの例です。
UIView* view = [[UIView alloc] init];
CGPoint destination = CGPointZero;
[UIView animateWithDuration: sqrt(pow(view.frame.origin.x - destination.x, 2) + pow(view.frame.origin.y - destination.y, 2)) / pixelsPerSecondVelocity
delay: 0
options: UIViewAnimationOptionCurveLinear
animations:^(void) {
view.frame = CGRectMake(destination.x,destination.y,view.frame.size.width,view.frame.size.height);
}
completion:^(BOOL finished) {
// nothing
}];
iOS 4より下をターゲットにしている場合は、以下のコードをの後に追加できbegin
ますcommit
。
[UIView setAnimationCurve:UIViewAnimationCurveLinear];