2011-11-10 13 views
0

イベントのタイムラインを表示するカスタムビューコンポーネントを構築しました。コンポーネントはNSViewのいくつかのカスタムサブクラスから構築され、それぞれはタイムライン内のイベントの特定の視覚的側面を実装します。ほとんどのクラスは、既存のCocoaコンポーネント(initWithFrameメソッドを介して追加)とカスタム描画(drawRectメソッドを使用)の組み合わせによって表示されます。カスタムNSViewの縮小版を作成する方法

タイムラインは、そのサイズのため、ユーザーがタイムラインを水平方向にスクロールできるNSScrollViewにラップされています。タイムラインは、そのフレームの座標系を表示されるイベントにマッピングするので、長い時間実行されるイベントは、より多くのピクセルの不動産を占有します。

これはすべてうまくいきます。しかし、今度は、リアルタイムタイムラインの縮小版であるビューを表示する機能を追加したいと考えています。スケールダウン時に詳細を失うイメージを縮小する効果に匹敵します。

あるビューで実行された図面を別のビュー(元のビューの縮小版/コピー)に「エコー」することはどうしてですか?

答えて

2

あなたは大きなタイムラインをエコーし​​、単にそれをダウンサイズを変更したい場合は...

NSViewのはあります

- (NSData *)dataWithPDFInsideRect:(NSRect)aRect 

は、スナップショットへの拡大のNSRectを渡します。その後

、とNSImageではを作成:のsetSizeを呼び出し、NSImageViewに置きその後

- (id)initWithData:(NSData *)data 

+0

ありがとうございました。あなたの提案はうまくいっていますが(と良い答えですが)、私は別の実装を選択しました。 PDFのスケーリングは少し厄介に見えたので、私は、ビューの縮小版(x軸とy軸に沿って)を持つ実装に移行することにしました。これは、イベントの縮小された変形を描画しますドット)。これはかなりうまくいく。次の課題は、それらの間でスクロールを調整することです。 – Roger

関連する問題