ios - 如何突出显示 iOS 图表中的最低数据点?

标签 ios ios-charts

我想放一张图片来表明这个数据点是数据中的最低点。我拍了一张照片来解释我想要什么。我正在使用 BarChartView 和 RadarChartView。

enter image description here

我的试用

我认为this question类似于我的问题,但我需要找到放置 UIImage 的位置。如果我知道位置,我可以这样做或执行 addSubviewgetMarkerPosition 函数看起来对确定正确位置很有用。

此外,ChartMarker 看起来很有帮助。在 ChartsDemo 中,一些图 TableView 使用了 BalloonMarker。这几乎是我想做的。这是来自 RadarChartViewController.m 的引述。

BalloonMarker *marker = [[BalloonMarker alloc] initWithColor:[UIColor colorWithWhite:180/255. alpha:1.0] font:[UIFont systemFontOfSize:12.0] insets: UIEdgeInsetsMake(8.0, 8.0, 20.0, 8.0)];
marker.minimumSize = CGSizeMake(80.f, 40.f);
_chartView.marker = marker;

BalloonMarker 已创建并添加到 _chartView.marker。因此,当用户单击栏时会出现一个标记,但我想始终显示一个标记。换句话说,图书馆决定显示和隐藏标记的正确时间。我找不到主动弹出标记的方法。

如果你能告诉我如何做到这一点,我将不胜感激。谢谢。

最佳答案

BarChartRenderer类中你可以找到方法

public override func drawValues(context context: CGContext)

在 for 循环中 if (!dataSet.isStacked) 的主体内,您可以首先使用 e.value 和相应的 valuePoint< 定义最小值 变量,所以在循环之后你将拥有绘制最小值的坐标并添加一些偏移量你也可以绘制你的标记

let image = UIImage(named: "MARKER")
image?.drawInRect(CGRect(x: valuePoint.x, y: SOME_OFFSET + valuePoint.y + (val >= 0.0 ? posOffset : negOffset), width: 16, height: 16))

或者在

public func drawDataSet(context context: CGContext, dataSet: IBarChartDataSet, index: Int)

您可以找到最小条形的 barRect 并使用该结果。

关于ios - 如何突出显示 iOS 图表中的最低数据点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37558350/

相关文章:

ios - 在 Swift 中获取 PHAsset 的位置

ios - 如何快速克隆对象模型

iphone - 更改状态栏高度时更改 View 框架?

swift - swift 3中饼图上的触摸事件

ios - 如何使用 Daniel Gindis 图表库在同一轴上绘制相同类型的图表(在折线图中)?

ios - 如何使用图表库设置自定义标记图像

ios - 如何使用 ios-charts 在饼图 View 中获取所选切片的索引?

ios - 从 Tab Bar Controller 推送到新的 Tab Bar Controller

ios - 范围异常索引超出范围时崩溃

ios - 在图表的 XAxis 上显示三个标签