作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
你好,我正在开发饼图应用程序。我想在圆弧中间添加文字。请显示我想要显示的图像。
.
我想在以文本为中心的圆弧中添加 100 和 250。
这是我的代码
int slicesCount = [self.datasource numberOfSlicesInPieChartView:self];
for (int i = 0; i < slicesCount; i++)
{
sum += [self.datasource pieChartView:self valueForSliceAtIndex:i];
}
float startAngle = - M_PI_2-30;
float endAngle = 0.0f;
for (int i = 0; i < slicesCount; i++)
{
double value = [self.datasource pieChartView:self valueForSliceAtIndex:i];
endAngle = startAngle + M_PI*2*value/sum;
CGContextAddArc(context, centerX, centerY, radius, startAngle, endAngle, false);
UIColor *drawColor = [self.datasource pieChartView:self colorForSliceAtIndex:i];
CGContextSetStrokeColorWithColor(context, drawColor.CGColor);
CGContextSetLineWidth(context, lineWidth);
NSString *str=[arrValue objectAtIndex:slicesCount];
CGContextShowTextAtPoint(context, 54, 63, [str UTF8String], str.length);// **how can i get X and Y coordinate**
CGContextStrokePath(context);
startAngle += M_PI*2*value/sum;
}
请帮忙。谢谢
最佳答案
好吧,您可以使用以下公式计算切片的中心:
...
endAngle = startAngle + M_PI*2*value/sum;
labelAngle = endAngle - startAngle;
labelX = centerX + radius * cos(labelAngle);
labelY = centerY + radius * sin(labelAngle);
...
然后在该点绘制文本(注意这些是标签中心的坐标)。
关于ios - 如何在 IOS 的 ARC 中心添加文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20321975/
我是一名优秀的程序员,十分优秀!