如何向NSView添加阴影



我花了一些时间试图找出如何向NSView添加阴影。目前,我正在尝试使用NSShadow类来实现这一点。我的代码在下面。我正试图在NSView子类中的自定义init方法中创建阴影。无论我尝试什么,都不会出现阴影。

NSShadow *dropShadow = [[NSShadow alloc] init];
[dropShadow setShadowColor:[NSColor blackColor]];
[self setWantsLayer:YES];
[self setShadow:dropShadow];

编辑

以下是我如何尝试使用CALayer

self.layer.shadowOffset = CGSizeMake(10, 10);
self.layer.shadowOpacity = 1.0;
self.layer.shadowRadius = 10.0;
self.layer.shadowPath = [self quartzPathFromBezierPath:[NSBezierPath bezierPathWithRect:frame]];

CCD_ 5将CCD_ 6转换为CCD_。

将此与偏移量一起使用,其他参数需要设置

- (id)initWithFrame:(NSRect)frame
{
    self = [super initWithFrame:frame];
    if (self)
    {
    NSShadow *dropShadow = [[NSShadow alloc] init];
    [dropShadow setShadowColor:[NSColor redColor]];
    [dropShadow setShadowOffset:NSMakeSize(0, -10.0)];
    [dropShadow setShadowBlurRadius:10.0];
    [self setWantsLayer: YES];
    [self setShadow: dropShadow];
    [dropShadow release];
}
return self;
}

NSShadow的一个替代方案是获取视图层并使用其阴影相关属性。特别是,请确保将shadowOpacity设置为高于0的值(默认值)。

请注意,不能同时使用阴影偏移和阴影路径。

试着按照这个答案,这里是

我认为最重要的一行是self.view.superview?.wantsLayer = true

相关内容

  • 没有找到相关文章

最新更新