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