2011-12-22 13 views
5

コンテンツをスクロールするときに、テーブルビュー(およびアウトラインビュー)にフェードエフェクトを描画する方法を探しています。またNSTableView/NSOutlineViewの上下のフェードエフェクト

fade effect on top

QuickLookのウィンドウhereに類似したフェードのビデオ:ここでFantasticalアプリからの例があります。

#define kFadeEffectHeight 15 

@implementation FadingScrollView 

- (void)drawRect: (NSRect)dirtyRect 
{ 
    [super drawRect: dirtyRect]; 

    NSGradient* g = [[NSGradient alloc] initWithStartingColor: [NSColor blackColor] endingColor: [NSColor clearColor]]; 

    NSRect topRect = self.bounds; 
    topRect.origin.y = self.bounds.size.height - kFadeEffectHeight; 
    topRect.size.height = kFadeEffectHeight; 

    NSRect botRect = self.bounds; 
    botRect.size.height = kFadeEffectHeight; 

    [NSGraphicsContext saveGraphicsState]; 
    [[NSGraphicsContext currentContext] setCompositingOperation: NSCompositeDestinationAtop]; 
    // Tried every compositing operation and none worked. Please specify wich one I should use if you do it this way 

    [g drawInRect: topRect angle: 90]; 
    [g drawInRect: botRect angle: 270]; 

    [NSGraphicsContext restoreGraphicsState]; 
} 

...しかし、これは、これは実際のテーブルビューの前に呼び出されたためか、何をフェードしませんでした。この私はこのコードでテーブルビューのscrollviewをサブクラス化しようとしたようにするに


描かれています。私は、これを行う方法:(

をちなみに上の見当がつかないテーブルビューと、私はこの効果を持つようにしたいoutlineview両方がビューベースで、アプリは唯一の10.7である。

+0

:-)あなたは効果のビデオやあなたが感動しているアプリのiTunesのリンクを提供することができますか? – viggio24

+0

@ viggio24さんは、App StoreのFantasticalへのリンクと、別の例のビデオを追加しました – Alex

答えて

7

Mac OSの場合あなたの質問にタグがついているので、これを難しくするいくつかの問題があります。これは特に、弾力性のあるスクロールのライオンに当てはまります。

私は(今日)テーブルビューまたはアウトラインビューを直接表示する:カスタムのNSScrollViewサブクラスは、2つの「フェードビュー」をクリップビューの正しい場所に並べて表示します。JLNFadingScrollViewは、希望のフェードの高さと色で設定でき、フリー/オープンソースです。 Github。ライセンスを尊重して楽しんでください。

Examples of JLNFadingScrollView

関連する問題