From c69a1996ece1e18c873807c4c32f6bfc684189d0 Mon Sep 17 00:00:00 2001
From: zziazm <1310726454@qq.com>
Date: Tue, 19 Dec 2017 17:21:21 +0800
Subject: [PATCH] add pie chart value title
---
ZFChartView/.DS_Store | Bin 8196 -> 8196 bytes
.../ViewController/PieChartViewController.m | 5 ++++-
.../ZFChart/ZFPieChart/ZFPieChart.h | 8 ++++++++
.../ZFChart/ZFPieChart/ZFPieChart.m | 11 ++++++++++-
4 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/ZFChartView/.DS_Store b/ZFChartView/.DS_Store
index b8f6a4a72f8d41a42b01b02a90514a4c59ea8c3c..dac72417cfe4592a5d9435f1673ae246196e3a4f 100644
GIT binary patch
delta 73
zcmZp1XmQxUDZ
5-7+p3{K9^
VEnolv#sdtK^~F>+zY>w+1^}L@7vlf`
delta 73
zcmZp1XmQxUDZjj3%`eG`ZUx`R@0|2$;7-|3j
diff --git a/ZFChartView/ZFChartView/ViewController/PieChartViewController.m b/ZFChartView/ZFChartView/ViewController/PieChartViewController.m
index 6724e84..e0c347a 100644
--- a/ZFChartView/ZFChartView/ViewController/PieChartViewController.m
+++ b/ZFChartView/ZFChartView/ViewController/PieChartViewController.m
@@ -38,7 +38,7 @@ - (void)viewDidLoad{
self.pieChart = [[ZFPieChart alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, _height)];
self.pieChart.dataSource = self;
self.pieChart.delegate = self;
-// self.pieChart.piePatternType = kPieChartPatternTypeForCircle;
+ self.pieChart.piePatternType = kPieChartPatternTypeCircle;
// self.pieChart.percentType = kPercentTypeInteger;
// self.pieChart.isShadow = NO;
// self.pieChart.isAnimated = NO;
@@ -47,6 +47,9 @@ - (void)viewDidLoad{
}
#pragma mark - ZFPieChartDataSource
+- (NSArray *)titleArrayInPieChart:(ZFPieChart *)pieChart{
+ return @[@"apple", @"suns", @"Mi", @"meizu", @"oppo", @"vivo"];
+}
- (NSArray *)valueArrayInPieChart:(ZFPieChart *)chart{
return @[@"50", @"256", @"300", @"283", @"490", @"236"];
diff --git a/ZFChartView/ZFChartView/ZFChart/ZFPieChart/ZFPieChart.h b/ZFChartView/ZFChartView/ZFChart/ZFPieChart/ZFPieChart.h
index c466bf6..35b1a16 100644
--- a/ZFChartView/ZFChartView/ZFChart/ZFPieChart/ZFPieChart.h
+++ b/ZFChartView/ZFChartView/ZFChart/ZFPieChart/ZFPieChart.h
@@ -28,6 +28,14 @@
*/
- (NSArray *)colorArrayInPieChart:(ZFPieChart *)pieChart;
+/**
+ * value标题
+ *
+ * @return NSArray必须存储NSString类型
+ */
+
+- (NSArray *)titleArrayInPieChart:(ZFPieChart *)pieChart;
+
@end
diff --git a/ZFChartView/ZFChartView/ZFChart/ZFPieChart/ZFPieChart.m b/ZFChartView/ZFChartView/ZFChart/ZFPieChart/ZFPieChart.m
index d429841..1c3817b 100644
--- a/ZFChartView/ZFChartView/ZFChart/ZFPieChart/ZFPieChart.m
+++ b/ZFChartView/ZFChartView/ZFChart/ZFPieChart/ZFPieChart.m
@@ -16,6 +16,8 @@
@interface ZFPieChart()
+/** 存储title的数组 */
+@property (nonatomic, strong) NSMutableArray * titleArray;
/** 存储value的数组 */
@property (nonatomic, strong) NSMutableArray * valueArray;
/** 存储颜色的数组 */
@@ -171,7 +173,9 @@ - (void)removeZFTranslucencePath{
- (void)strokePath{
[self removeAllSubLayers];
[self removeZFTranslucencePath];
-
+ if ([self.dataSource respondsToSelector:@selector(titleArrayInPieChart:)]) {
+ self.titleArray = [NSMutableArray arrayWithArray:[self.dataSource titleArrayInPieChart:self]];
+ }
if ([self.dataSource respondsToSelector:@selector(valueArrayInPieChart:)]) {
self.valueArray = [NSMutableArray arrayWithArray:[self.dataSource valueArrayInPieChart:self]];
@@ -354,8 +358,13 @@ - (CGPoint)getBezierPathCenterPointWithStartAngle:(CGFloat)startAngle endAngle:(
*/
- (void)creatPercentLabel:(NSInteger)i{
NSString * string = [self getPercent:i];
+ if (i < self.titleArray.count) {
+ NSString * title = self.titleArray[i];
+ string = [NSString stringWithFormat:@"%@\n%@", string ,title];
+ }
CGRect rect = [string stringWidthRectWithSize:CGSizeMake(0, 0) font:_percentOnChartFont];
UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, rect.size.width, rect.size.height)];
+ label.numberOfLines = 0;
label.text = string;
label.alpha = 0.f;
label.textAlignment = NSTextAlignmentCenter;