来自Core Plot的标注不跟随滚动

时间:2013-02-07 21:09:06

标签: ios graph core-plot callouts

我正在使用代码here的修改版本来显示图表中绘图点上的标注弹出窗口。我得到它主要是工作,但问题是,当我滚动或缩放图形时,标注保持在屏幕上的相同位置,而不是跟随点移动。

如果您想要使用一些代码示例,请点击此处。关于如何使用标绘点进行标注旅行的任何想法?谢谢!

-(void)scatterPlot:(CPTScatterPlot *)plot plotSymbolWasSelectedAtRecordIndex:(NSUInteger)idx {
    if ([plot.identifier isEqual:_plotIdentifier]) {

        NSArray *selectedSymbolItem = [self.data.xyArrays objectAtIndex:idx];
        NSNumber *x = [selectedSymbolItem objectAtIndex:0];
        NSNumber *y = [selectedSymbolItem objectAtIndex:1];
        double doublePrecisionPlotPoint[2];
        doublePrecisionPlotPoint[0] = x.doubleValue;
        doublePrecisionPlotPoint[1] = y.doubleValue;
        CGPoint pointTouched = [plot.graph.defaultPlotSpace plotAreaViewPointForDoublePrecisionPlotPoint:doublePrecisionPlotPoint];

        CGPoint convertedPoint = [plot.graph convertPoint:pointTouched toLayer:self.view.layer];

        _popupView = [[SMCalloutView alloc] init];
        _popupView.title = [NSString stringWithFormat:@"Thing %i", idx];
        [_popupView presentCalloutFromRect:CGRectMake(convertedPoint.x, convertedPoint.y, 10, 10) inLayer:self.view.layer constrainedToLayer:self.hostView.layer permittedArrowDirections:SMCalloutArrowDirectionDown animated:YES];

    }
}

1 个答案:

答案 0 :(得分:1)

使用绘图空间委托来监控绘图空间的更改并根据需要更新标注位置。