Я пытаюсь нарисовать PieChart с помощью UIBezierPath, и я довольно близко, чтобы сделать это, однако, у меня есть проблема, как вы можете видеть на скриншоте прикрепленного Вот код, я использую:Нарисуйте круговую диаграмму с UIBezierPath
-(void)drawRect:(CGRect)rect
{
CGRect bounds = self.bounds;
CGPoint center = CGPointMake((bounds.size.width/2.0), (bounds.size.height/2.0));
NSManagedObject *gameObject = [SCGameManager sharedInstance].gameObject;
int playerNumber = 0;
int totalOfPlayers = [(NSSet*)[gameObject valueForKey:@"playerColors"] count];
float anglePerPlayer = M_PI*2/totalOfPlayers;
for (NSManagedObject *aPlayerColor in [gameObject valueForKey:@"playerColors"]){
//Draw the progress
CGFloat startAngle = anglePerPlayer * playerNumber;
CGFloat endAngle = startAngle + anglePerPlayer;
UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:center radius:self.frame. size.width/2 startAngle:startAngle endAngle:endAngle clockwise:YES];
UIColor *playerColor = [SCConstants getUIColorForPlayer:[[aPlayerColor valueForKey:@"colorIndex"] intValue]];
[playerColor set];
[path fill];
playerNumber++;
}
}
Видимо, мне просто нужно, чтобы переместить свой путь к центру круга, а затем закрыть его, но когда я добавляю следующую строку кода:
[path addLineToPoint:self.center];
[path closePath];
Это что-то странное:
Вы знаете что-то не так с кодом? Я вообще не эксперт Безье, поэтому любая помощь приветствуется!
Спасибо!
Хорошо заметили! Большое спасибо, это исправило это. –