2012-01-19 3 views
2

iPhoneでこのようなことを簡単に行うことができますか? 、重み付けフィルタを適用し、RMS -デシベルの読み値からダイナミックニードルのグラフィックにどのように値を渡すのが簡単か

は、読書のための針の動きを作る方法に

感謝を好きで、あなたは何をやっている知っていれば非常に簡単

enter image description here

+0

既に読んでいる人は、かなりシンプルであるはずです。そのほとんどは静的ですが、更新可能な3つのラベルがあり、針は動的に移動する別のビューになる可能性があります。あなたはあなたの質問にもっと具体的にしたいかもしれません。 –

+0

応答#triPhoenixありがとう。 私は針を動かす方法を知りたいです – Desmond

答えて

2

をあなたはUIImageViewに針を置くことができるはずです。すべてのビューには関連する変換があります。これは基本的に行列で、元の点が画面にどのようにマッピングされるかを決定します。これの簡単な操作を行うには、非常にシンプルな方法があります。

UILabel *lblTest = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 100)]; 
lblTest.text = @"Testing"; 
[view addSubview:lblTest]; 

lblTest.transform = CGAffineTransformMakeRotation(M_PI/4.0); 

はラジアンでPIの四半期で45度(回転したラベルになります。あなたはM_PIを乗じ度をラジアンに変換することができます180.0で割る)。新しいデータポイントが入るたびに、この使用してすでに針をアニメーション化するために手元にメソッドを持って、これはまた、アニメーション化することができることを

注:

[UIView animateWithDuration:5.0 animations:^{ 
    lblTest.transform = CGAffineTransformMakeRotation(M_PI_4); 
}]; 

これは、以上の45度にビューを回転させ、ゆっくりまします5秒のコース。そこにアニメーションのためのいくつかのチュートリアルがあります。 How to use UIView animation tutorial。そして、フレームワークは、すでに例えば:

[UIView animateWithDuration:1.0 delay:1.0 options:UIViewAnimationCurveEaseInOut|UIViewAnimationOptionAutoreverse|UIViewAnimationOptionRepeat animations:^{ 
    lblTest.transform = CGAffineTransformMakeRotation(M_PI_4); 
} completion:^(BOOL finished) {   
}]; 

が戻って逆自動的に、最初と回転の終わりを「滑らかな」と何度もこれを繰り返すことになります、いくつかの先進的な事柄が可能になります。これは、1秒間待った後、前後に "wiggeling"というラベルをつけます。

値間をジャンプするときに、これを使用して滑らかな効果を導入できます。たとえば、250msごとにサンプリングするだけの場合は、その時間を使ってアニメーションを導入することができます。

+0

同じようにおかげで、それを試してみる – Desmond

2

コメントます時間加重フィルタを適用し、dBに変換します。大きな問題はマイクの校正です。

しかし、前にバイクアッドでオーディオ処理を行っておらず、それについて何も知らないのなら、それはおそらく簡単ではないでしょう。

+0

情報のおかげで、 – Desmond

1

あなたはobjcでどれくらいの経験を持っているかによって異なります:) このようなゲージでアナログ値を表すことはあまり複雑ではありません。例えば

Thisリンクは、あなたが始める必要があります...

+0

おかげで情報のためにありがとう、リンクは良いプラットフォーム – Desmond

関連する問題