【问题标题】:How can I highlight the lowest data point in iOS-Charts?如何突出显示 iOS 图表中的最低数据点?
【发布时间】:2016-06-01 02:11:08
【问题描述】:

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

我的审判

我认为this question 与我的问题相似,但我需要获得放置 UIImage 的位置。如果我知道职位,我可以做或做addSubviewgetMarkerPosition 函数看起来对确定正确的位置很有用。

另外,ChartMarker 看起来很有帮助。在ChartsDemo 中,一些图表视图使用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。因此,当用户单击栏时会出现一个标记,但我想始终显示一个标记。换句话说,库决定了显示和隐藏标记的正确时间。我找不到主动弹出标记的方法。

如果您能告诉我这样做的方法,我将不胜感激。谢谢。

【问题讨论】:

    标签: ios ios-charts


    【解决方案1】:

    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,索引:Int)

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

    【讨论】:

    • 谢谢keyv,我来解决这个问题。我在funcdrawValues中添加了一些代码,我得到了成功。顺便说一句,我不想​​修改该文件,因为该文件属于iOS图表库。可能,我必须创建BarChartViewBarChartRenderer 的子类;但是因为这些方法是内部的,所以我不能覆盖它们。我发现了一个与我 Mateusz 4 个月前发布的情况类似的问题,但没有人回答。你能告诉我下一步该怎么做吗?无论如何,我很感激你的友好回答。再次感谢您。
    • 我上面提到的那个帖子是this
    • 很遗憾,除了修改这些库文件之外,我看不到任何其他变体。
    • 好的,我很感激。如果我能解决这个问题,我会在这里发布。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    相关资源
    最近更新 更多