gpt4 book ai didi

objective-c - 在透明元素下的NSView中绘制图像背景

转载 作者:行者123 更新时间:2023-12-03 17:52:48 26 4
gpt4 key购买 nike

我想在 NSView 中绘制图像背景,并在其上放置一些也具有透明背景的元素。

我已经覆盖了 NSView 的绘制矩形:

- (void)drawRect:(NSRect)rect
{
[NSGraphicsContext saveGraphicsState];

NSImage *image = [NSImage imageNamed:@"header_background.gif"];

[image drawInRect:CGRectMake(0, rect.size.height - 75, rect.size.width, 75) fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0];

[NSGraphicsContext restoreGraphicsState];
}

NSWindow 初始化:

- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag
{
self = [super initWithContentRect:contentRect styleMask:aStyle backing:bufferingType defer:flag];
if (self) {
[self setOpaque:NO];
[self setHasShadow:YES];
[self setBackgroundColor:[NSColor clearColor]];
}

return self;
}

之后就产生了如此奇怪的效果。 slider 和按钮的背景有时也会闪烁 enter image description here

我做错了什么?

最佳答案

首先,绘制图像时会忽略“颜色”,因此不会执行任何操作。其次,我在这里看到的代码可能不会导致问题,您可以发布文件的其余部分吗?

现在我怀疑您可能已将此 View 标记为不透明,但事实并非如此,或者您的 View 层次结构中有其他奇怪的东西。

关于objective-c - 在透明元素下的NSView中绘制图像背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21081054/

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