В настоящее время я имею дело с генерированием активов приложения iOS в коде (создание CAShapeLayer и рендеринг его как UIImage). У меня проблема с закругленными углами, искаженными при рисовании пути безье для моего слоя, и мне было интересно, есть ли у кого-то такая же проблема?CAShapeLayer закругленные углы искажения
Скриншот визуализировать проблему:
http://i.stack.imgur.com/I8Jre.png
(Сгенерировано UIImage используется в качестве BackgroundImage для UIButton)
Код, используемый для создания слоя:
CAShapeLayer * layer = [CAShapeLayer new];
[layer setBackgroundColor:[UIColor clearColor].CGColor];
[layer setFrame:CGRectMake(.0, .0, size.width, size.height)];
[layer setFillColor:[UIColor colorForKey:@"colour_1"].CGColor];
[layer setStrokeColor:[UIColor colorForKey:@"colour_4"].CGColor];
[layer setLineWidth:2.0];
[layer setPath:[UIBezierPath bezierPathWithRoundedRect:layer.frame byRoundingCorners:UIRectCornerBottomLeft|UIRectCornerBottomRight cornerRadii:CGSizeMake(10.0, 10.0)].CGPath];
Включите его в UII-код:
UIImage * imageFromCALayer(CALayer * layer) {
UIGraphicsBeginImageContextWithOptions([layer frame].size, NO, [UIScreen mainScreen].scale);
[layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *outputImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return outputImage;
}