gpt4 book ai didi

objective-c - NSTableView/NSOutlineView 顶部和底部淡入淡出效果

转载 作者:太空狗 更新时间:2023-10-30 03:50:45 26 4
gpt4 key购买 nike

我正在寻找一种在滚动内容时在表格 View (和大纲 View ,但我认为它们是相同的)上绘制淡入淡出效果的方法。这是来自 Fantastical 的示例应用:

fade effect on top

还有一个在 QuickLook 窗口上出现类似淡入淡出的视频 here .


为此,我尝试使用以下代码对 tableview 的 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];
}

...但这并没有淡化任何东西,可能是因为它是在绘制实际表格 View 之前调用的。我不知道该怎么做:(

对了,我想做这个效果的tableview和outlineview都是view-based,而且app只有10.7。

最佳答案

在 Mac OS X 中(如您的问题已标记),有几个陷阱使这变得困难。在具有弹性滚动功能的 Lion 上尤其如此。

我(就在今天)将我认为比直接在表格或大纲 View 上工作更好的方法放在一起:自定义 NSScrollView 子类,它将两个“淡入淡出 View ”平铺在其剪辑 View 顶部的正确位置. JLNFadingScrollView可以配置所需的淡入淡出高度和颜色,并且在 Github 上是免费/开源的。请尊重许可并尽情享受。 :-)

Examples of JLNFadingScrollView

关于objective-c - NSTableView/NSOutlineView 顶部和底部淡入淡出效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8604004/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com