Нарисуйте границу вокруг овального CAShapeLayer на MacOS - PullRequest
0 голосов
/ 05 марта 2020

Мне нужно отобразить овальный слой с предопределенным fillColor и 1px borderColor.
Вот код:

    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;

Овальная форма отображается правильно, но без каких-либо граница.
Почему? Пожалуйста, помогите мне.

PS Обратите внимание, что path.CGPath относится к категории NSBezierPath.

1 Ответ

0 голосов
/ 05 марта 2020

Я решил проблему, заменив borderColor на strokeColor

minimizeButtonLayer.borderColor = borderColor.CGColor;

на

minimizeButtonLayer.strokeColor = borderColor.CGColor;
...