绘制CAShapeLayer strokeEnd圈一侧

时间:2015-09-15 08:29:51

标签: ios objective-c iphone ios9 cashapelayer

  

我已经为进度条实现了一个基本的线条绘制动画。这条线有一个圆帽边缘。当我移动滑块时,绘制线条末端的线条有一个圆形的帽子,但在开始时它是一个正方形。下面是我正在使用的代码我错过了什么?

附加图片:预期输出

expected output

  

在Code下面我尝试了

@interface ViewController ()
{

CGPoint center;
CGFloat radius;

}

 @end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
center = CGPointMake(200.0, 200.0);
self.view.layer.backgroundColor = [[UIColor grayColor] CGColor];


 }
- (IBAction)greenSlider:(UISlider *)sender {
[self.view.layer addSublayer:[self drawArcAtCenter:center startAngle:sender.minimumValue endAngle:sender.value radius:100.0 withColor:[UIColor greenColor]]];
 }
 - (IBAction)blueSlider:(UISlider *)sender {
int value = (int)sender.value;
if (value > 360) {
    value = value % 90;
}
[self.view.layer addSublayer:[self drawArcAtCenter:center startAngle:sender.minimumValue endAngle:(float)value radius:100 withColor:[UIColor blueColor]]];
}


- (CAShapeLayer *) drawArcAtCenter:(CGPoint)newCenter startAngle:(CGFloat)sAngle endAngle:(CGFloat)bAngle radius:(CGFloat) radious withColor:(UIColor*) color
{
CGFloat begAngle = sAngle * 3.1459 / 180.0;
CGFloat endAngle = bAngle * 3.1459 / 180.0;


CAShapeLayer *layer = [CAShapeLayer layer];

UIBezierPath *path = [UIBezierPath bezierPath];
[path addArcWithCenter:newCenter radius:radious startAngle:begAngle endAngle:endAngle clockwise:YES];


layer.path = [path CGPath];
layer.strokeColor = [color CGColor];
layer.fillColor = [[UIColor clearColor] CGColor];;
layer.lineWidth = 50.0;
layer.strokeEnd = 50.0f;
layer.lineCap = kCALineCapRound;
layer.cornerRadius = 30.0f;

return layer;
 }

coming output

0 个答案:

没有答案