Я хочу показать круговую диаграмму моей категории в процентах.Как создать круговую диаграмму в iPhone?
Как создать круговую диаграмму категории процент?
Я хочу показать круговую диаграмму моей категории в процентах.Как создать круговую диаграмму в iPhone?
Как создать круговую диаграмму категории процент?
Вы должны реализовать класс, который переопределяет метод drawRect:
и нарисовать пирог самостоятельно. Вы должны использовать класс UIBezierPath, в частности, посмотрите на метод addArcWithCenter:radius:startAngle:endAngle:clockwise:, чтобы нарисовать часть круга.
См. Также this article и this article.
Это может быть полезно при предупреждении, что если это похоже на чужой код, это потому, что я разработал, как это сделать с веб-сайтами, и дополнительное предупреждение, которое я сделал это вскоре после запуска iPhone. Люди, которые хотят сказать мне, какие биты неэффективны или неправильны, приветствуются, я все еще участвую.
static inline float radians(double degrees) { return degrees * M_PI/180; }
// making a simple pac man shape
- (UIImage*)getImage {
UIImage* image;
if(self.completion == 100.0f) {
image = [UIImage imageNamed:@"completedTaskIcon.png"];
} else {
UIGraphicsBeginImageContext(CGSizeMake(SIDELENGTH, SIDELENGTH));
CGContextRef context = UIGraphicsGetCurrentContext();
// the image should have a clear background
[[UIColor clearColor] set];
CGRect myRect = CGRectMake(0.0f, 0.0f, SIDELENGTH, SIDELENGTH);
UIRectFill(myRect);
// color was hopefully set before this method called
[self.color set];
// centre point is required
CGFloat midx = SIDELENGTH/2;
CGFloat midy = SIDELENGTH/2;
// radius of the arc
CGFloat radius = (SIDELENGTH/2) * 0.60f;
// pie background
CGContextSetFillColor(context, CGColorGetComponents([[UIColor orangeColor] CGColor]));
CGContextBeginPath(context);
CGContextMoveToPoint(context, midx + radius, midy);
CGContextAddArc(context, midx, midy, radius, radians(0), radians(360), 0);
CGContextFillPath(context);
// pie segment
CGContextSetFillColor(context, CGColorGetComponents([[UIColor blueColor] CGColor]));
CGContextBeginPath(context);
CGContextMoveToPoint(context, midx, midy);
CGContextAddLineToPoint(context, midx + radius, midy);
CGContextAddArc(context, midx, midy, radius, radians(0), radians(360 * (self.completion/100.0f)), 0);
CGContextFillPath(context);
image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
return image;
}
Помимо предлагаемой библиотеки в других ответах, есть два действительно хороших класса круговых диаграмм с открытым исходным кодом, которые я использовал. Они выглядят очень красиво, очень просто, посмотрите на них в GitHub:
вы можете обратиться мой ответ http://stackoverflow.com/ вопросы/13231244/draw-pie-chart-using-ios-quartz-2d/30004287 # 30004287, который включает только одну строку кода для рисования круговой диаграммы – iYoung