私はコアプロットを使用するココアインターフェイスを持っています。インターフェイスのボタンを押すと、プロットが描画されます。私は、plottingメソッドを複数回呼び出し、その間にsleep()を呼び出すことで一連のグラフを作成したかったのです。しかし、データをリロードする呼び出しが行われても、関数が終了するまで何も起こらない(最後のグラフだけが表示される)ようにも見えます。今私はCPAnimationが存在することを知っていますが、それを使用する前に、関数を終了してグラフをリフレッシュさせるときに何が起こっているのか疑問に思っていました。私は睡眠を使用する代わりに爽やかな気遣うスレッドに降伏する必要がありますか?メソッドから戻ることなくコアプロットをリフレッシュする方法はありますか?
答えて
わかりました。私はreloadDataメソッドを別のスレッドのメソッドから呼び出す(常に返す)。これは、IBActionからreloadDataを呼び出すことと、NSTimerを呼び出すことに気をつけました。最後に、スリープを使用する代わりに、NSConditionLockを使用して処理とリフレッシュを調整します。
おそらく、Core Plot(またはあなたのコード)がビューを必要な表示として設定します。それはすぐには起こりません。イベントループに戻ると起こります。
Mac OS Xアプリケーションでsleep
を使用するたびに、子犬を殺します。代わりにNSTimerを使用してください。あなたのタイマーコールバックメソッドは、1つのグラフに必要な作業を行い、どのグラフを描画すべきかを知るためにメソッドに必要なインスタンス変数を設定します。
また、すべてのグラフをスライドショーとして見るのではなく、ユーザーが選択できるグラフのリストを提示する方が良いでしょう。 (明示的にラベル付けされたスライドショーが実装しているものでない限り)
Peterは正しいです。リロードデータメソッドは実際には何も描画しません。プロットは、レイヤーがスクリーンに描画されたときに、表示が必要なものとしてマークされ、リフレッシュされます。 sleep
を使用すると、描画する機会は決してありません。
また、Core Plotはかなり若いプロジェクトです。 CPAnimation
であり、関連するクラスはスタブです。彼らはまだ何もしていない。 :-)
あなたはまだcpanimationがうまくいきませんか? –
はい、正しいです。 –
ああ、応答のおかげで、私はちょうど私が今すぐ必要なもののカスタムコードとその速さの少しで行くアニメーションを持っている間に、ありがとう。 –
コアプロットは、ほとんどのCocoaドローイングフレームワークと同様、実行ループの最後に描画されます。これは、物事があまりにも頻繁に描かれないようにするためです。
すぐに描画するのではなく、レイヤに必要な描画としてマークが付けられます。 (
- 1. elispからキーボードマクロに戻る方法はありますか?
- 2. アプレット自体からJavaアプレットをリロード/リフレッシュする方法はありますか?
- 3. メソッドを実行せずにメソッド呼び出しと戻り値をモックする方法はありますか?
- 4. このような構成の戻り値を0から1にする方法はありますか?
- 5. "onkeydown"を遅く戻す方法はありますか?
- 6. RequestMappingHandlerMappingをリフレッシュする方法はありますか?
- 7. あるクラス(JPanel)のメソッドをリフレッシュするための適切な参照方法は、別のクラスのメソッドから呼び出すことができますか?
- 8. 戻り値の前にメソッドをリスナーから待機させる方法はありますか?
- 9. フレームワークからいくつかのメソッドを禁止する簡単な方法はありますか?
- 10. 戻り値がlongより大きい場合にメソッドからlongを返す方法はありますか?
- 11. このコードを短くする方法はありますか?
- 12. プロジェクトをインポートしてワークスペースをリフレッシュするヘッドレスな方法はありますか?
- 13. メソッドがメタクラスのクラスメソッドか静的メソッドかどうかを確認する方法はありますか?ここ
- 14. 使用されているメソッドからパラメータを送ることができる方法はありますか
- 15. 10秒ごとにPHPスクリプトをリフレッシュする方法はありますか?
- 16. 戻り値のないストアドプロシージャが実行されたことを確認する方法はありますか?
- 17. 異なるJavaファイルからフラグメントをリフレッシュする方法は?ここ
- 18. パラメータと戻り値なしでReflection経由でメソッドを呼び出す方法はありますか?
- 19. これまでにpsスクリプトを空にすることなく署名する方法はありますか?
- 20. CakePHPでは、コントローラのメソッドを終了するか、またはコントローラのメソッドから戻るには良い方法はありますか?
- 21. 親メソッドから子メソッドを返す方法はありますか?
- 22. メソッドからの戻り時間が長くなるC++
- 23. メソッドをJavaのdespendendantクラスから使用する方法はありますか?
- 24. SpringBatchジョブをStepExecutionListener afterStepメソッドから停止する方法はありますか?
- 25. py2exeをエラーなくビルドする方法はありますか?
- 26. Javascriptでマップの包含ブロックから戻る方法はありますか?
- 27. ネイティブAndroidの設定画面から戻る方法はありますか?
- 28. これはメソッドの機能を非難する方法はありますか?
- 29. C++ 11の戻り値と一致する方法はありますか?
- 30. コードを書くことなくsqldatasourceの行数を取得する簡単な方法はありますか?
追加されたコアプロットタグ:withObject:afterDelay
としては、他の人が指摘された、睡眠へのより良いアプローチは、実行ループを遮断回避するNSTimerを使用する、またはperformSelector等NSObjectの方法を使用することですあなたは別の質問でリクエストしました)。 – M4N
thx mate!ありがとうございます。 –
もう一度、コア・プロット・フレームワークへの貢献者は、スタック・オーバーフローではほとんどアクティブではありません。プロジェクトのメーリングリストであなたの質問に対するより良い回答が得られるかもしれません:http://groups.google.com/group/coreplot-discuss?hl=en –