【问题标题】:Draw a border around an oval CAShapeLayer on MacOS在 MacOS 上围绕椭圆 CAShapeLayer 绘制边框
【发布时间】:2020-06-18 05:57:15
【问题描述】:

我需要显示一个带有预定义填充颜色和 1 像素边框颜色的椭圆层。
代码如下:

    CGRect r = CGRectMake(28, self.bounds.size.height - 5 - 12, 12.0, 12.0);
    NSBezierPath *path = [NSBezierPath bezierPathWithOvalInRect:r];

    NSColor *fillColor = [NSColor colorWithRed:255.0/255.0 green:193.0/255.0 blue:47.0/255.0 alpha:1.0f];
    NSColor *borderColor = [NSColor colorWithRed:226.0/255.0 green:70.0/255.0 blue:84.0/255.0 alpha:1.0f];

    minimizeButtonLayer = [CAShapeLayer layer];
    minimizeButtonLayer.path = path.CGPath;
    minimizeButtonLayer.fillColor = fillColor.CGColor;
    minimizeButtonLayer.borderColor = borderColor.CGColor;
    minimizeButtonLayer.borderWidth = 1.0;

椭圆形正确显示,但没有任何边框。
为什么?请帮帮我。

附:请注意 path.CGPath 来自 NSBezierPath 类别。

【问题讨论】:

    标签: objective-c macos io core-graphics


    【解决方案1】:

    我通过将borderColor替换为strokeColor解决了这个问题

    minimizeButtonLayer.borderColor = borderColor.CGColor;
    

    minimizeButtonLayer.strokeColor = borderColor.CGColor;
    

    【讨论】:

      猜你喜欢
      • 2016-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多