如何用CAShapeLayer创build圆angular

有没有办法给CAShapeLayer添加圆angular? 在我的情况下,我需要形状图层通过lineDashPattern创build一个虚线边框。

用虚线圆角 - 不正确

^注意虚线是不是圆整的

答案很简单。 创build一个带圆angular的贝塞尔path。

 self.clipsToBounds = YES; self.layer.cornerRadius = 10.0; self.border = [CAShapeLayer layer]; self.border.fillColor = nil; self.border.path = [UIBezierPath bezierPathWithRoundedRect:self.bounds cornerRadius:10.0]; self.border.frame = self.bounds; self.border.strokeColor = [UIColor purpleColor].CGColor; self.border.lineWidth = borderWidth * 2; // double desired width as half will be clipped self.border.lineDashPattern = @[@15]; [self.layer addSublayer:self.border]; 

用虚线圆角 - 正确