2011-12-22 12 views
5

Poszukuję sposobu narysowania efektu zanikania w widoku tabeli (i widoku konspektu, ale myślę, że będzie taki sam) podczas przewijania zawartości. Oto przykład z aplikacji Fantastical:Efekt zanikania u góry iu dołu widoku NSTableView/NSOutlineView

fade effect on top

także film o podobnym więdną na Quicklook okien here.


Aby to próbowałem instacji Scrollview z tableview z tym kodem Marka:

#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]; 
} 

... ale to nic nie znikną, prawdopodobnie dlatego, że nazywa się to przed rzeczywistym widoku tabeli jest rysowane. Nie mam pojęcia w jaki sposób to zrobić :(

Nawiasem mówiąc, zarówno tableview i outlineview Chcę mieć ten efekt są oparte na widoku, a aplikacja jest tylko 10,7.

+0

można dostarczyć film z efektu lub link iTunes app jesteś na inspirujące? – viggio24

+0

@ viggio24 dodał link do Fantastical w sklepie z aplikacjami i wideo z innego przykładu – Alex

Odpowiedz

7

W systemie Mac OS X (ponieważ twoje pytanie jest otagowane), jest kilka kłopotów, które to utrudniają, szczególnie w przypadku Lion z elastycznym przewijaniem

Ja (właśnie dzisiaj) zsumowałem to, co uważam za lepsze podejście niż praca nad bezpośrednio z widoku tabeli lub konturu: niestandardowa podklasa NSScrollView, która utrzymuje dwa "widoki zejścia" rozmieszczone w odpowiednim miejscu na szczycie widoku klipu, JLNFadingScrollView może być skonfigurowany z żądaną wysokością i kolorem zanikania i jest wolny/otwarty. Github. Szanuj licencję i ciesz się. :-)

Examples of JLNFadingScrollView

Powiązane problemy