Я ищу способ нарисовать эффект затухания в представлении таблицы (и представлении контура, но я думаю, что он будет таким же), когда контент прокручивается. Вот пример из приложения Fantastical :
Также видео с аналогичным затуханием в окнах QuickLook здесь .
Чтобы сделать это, я попытался создать подкласс для scrollview табличного представления с помощью этого кода:
#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];
}
... но это ничего не привело к исчезновению, вероятно, потому, что это вызывается до того, как отрисовывается фактическое табличное представление. Я понятия не имею, как это сделать: (
Между прочим, и табличное, и контурное представление, которое я хочу получить, основаны на представлении, а приложение - только 10.7.