2011-02-02 6 views
2

私はvelocityInViewを返すためにUIPanGestureを使用しています。収集するものから、1秒あたりのポイント数を返すようになっています。私が何を得ているかは、何億という数字と多くのゼロがあります...私はマウスをシミュレータですばやく動かすつもりはありません。iOS - UIPanGestureでvelocityInViewを作成する

私は思う...あなたが持っている任意のヘルプ/アドバイスを事前に

感謝。

編集:要求されたコード。あなたのコードなしで

-(void)handlePanGesture:(UIPanGestureRecognizer *) recognizer 
{ 
    if (recognizer.state == UIGestureRecognizerStateChanged || 
     recognizer.state == UIGestureRecognizerStateBegan) 
    { 
     CGPoint vel = [recognizer velocityInView:myScrollView]; 
     //[self doSpinAnimationWithVelocity:vel.x]; 
     NSLog([NSString stringWithFormat:@"Velocity - X-Axis - %d ", vel.x]); 
     NSLog([NSString stringWithFormat:@"Velocity - Y-Axis - %d ", vel.y]); 
    } 
} 

Image here of output since I'm still below 10 rep

+0

もし私が現時点でx軸をキャプチャしているだけであれば違います。 – Mytheral

+0

y軸も同様の情報を与えています。 – Mytheral

+0

velocityInViewを呼び出すコードと、数字の表示方法を示します。 – Anna

答えて

4

を呼び出す

表示/その...

するCGPointは、あなたは可能性がどのようにあなたがそれらを印刷しているに応じて、CGFloatsで構成されてハードを避けます予期しない結果を得る

velocityInViewに渡すビューは、ビュー階層内にある必要があります。 speedInView:メソッドに渡す前にビューのwindowプロパティを設定します。

+0

この回答は技術的には正しかったですが、マットは上記のコメントの頭に当たっています。皆さんありがとう。 – Mytheral

+3

人に魚を与えれば、人が一生の間釣りをするように教えれば、その人は一日食べます。 –

0

velocityInViewのように見えます:水平と垂直のコンポーネントを表すCGPointを返します(基本的にはベクトルです)。ベロシティはこれらの2つのコンポーネントに分かれているので、値の分析方法に注意する必要があります。あなたはより多くの速度ではなく、速度を探している場合は、ベクトルの大きさを取るだろう、すなわちのようなもの:

CGFloat magnitude = sqrtf((velocityPoint.x * velocityPoint.x) + (velocityPoint.y * velocityPoint.y)); 
+0

明快にするために、これは私のコードサンプルと画像の前に掲示されています。 – Mytheral

1

私は少し遅れて相手にだ知っているが、別のヒント:(NSStringFromCGPointをチェック)と家族:

関連する問題