2015-06-07 3 views
0

Я использую lineWidth для создания круга с шириной хода 4. Я использую UIBezierPath для создания круга. Но, по какой-то причине, lineWidth всегда создает круг с тонким ударом независимо от того, какое значение я назначаю lineWidth. Я также попытался поместить path.lineWidth = 100.0, но без изменения ширины штриха.lineWidth не соответствует ширине кривой Безье

Это мой код:

UIGraphicsBeginImageContextWithOptions(CGSizeMake(progressView.frame.size.width, progressView.frame.size.height), NO, 0.0); 

    [[UIColor colorWithRed:246.0/255.0 green:80.0/255.0 blue:36.0/255.0 alpha:1.0] setStroke]; 

    UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(progressView.frame.size.width/2 ,progressView.frame.size.height/2) radius:progressView.frame.size.width/2 - 5 startAngle:DEGREES_TO_RADIANS(0) endAngle:DEGREES_TO_RADIANS(angle) clockwise:YES]; 
    [path stroke]; 
    path.lineWidth = 4; 
UIImage* pathImg = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    [progressView setImage:pathImg]; 

Я гугл много, но не смог найти решение этой проблемы.

ответ

2

Вы должны установить ширину обводки, прежде чем вы на самом деле инсульт путь:

UIGraphicsBeginImageContextWithOptions(CGSizeMake(progressView.frame.size.width, progressView.frame.size.height), NO, 0.0); 
[[UIColor colorWithRed:246.0/255.0 green:80.0/255.0 blue:36.0/255.0 alpha:1.0] setStroke]; 
UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(progressView.frame.size.width/2 ,progressView.frame.size.height/2) radius:progressView.frame.size.width/2 - 5 startAngle:DEGREES_TO_RADIANS(0) endAngle:DEGREES_TO_RADIANS(angle) clockwise:YES]; 
path.lineWidth = 4; 
[path stroke]; 
UIImage* pathImg = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

[progressView setImage:pathImg]; 
Смежные вопросы