如何在iPhone上使用Core-Plot折线图实现放大和缩小?

App*_*ain 12 iphone charts core-plot

iPhone上可以使用Core-Plot Chart组件实现放大和缩小吗?如果是的话请建议我怎么做?

提前致谢.

Fel*_*zin 9

是的,我这样做是通过像这样调整PlotSpace(可能不是最好的解决方案,但我能想出的最好的解决方案):

-(void)zoomOut 
{
    CPXYPlotSpace *plotSpace = (CPXYPlotSpace *)graph.defaultPlotSpace;

    graphScaleX+=5;
    graphScaleY+=5;

    plotSpace.xRange = [CPPlotRange plotRangeWithLocation:plotSpace.xRange.location length:CPDecimalFromFloat(graphScaleX)];
    plotSpace.yRange = [CPPlotRange plotRangeWithLocation:plotSpace.yRange.location length:CPDecimalFromFloat(graphScaleY)];
}

-(void)zoomIn
{
    CPXYPlotSpace *plotSpace = (CPXYPlotSpace *)graph.defaultPlotSpace;

    graphScaleX-=5;
    graphScaleY-=5;

    plotSpace.xRange = [CPPlotRange plotRangeWithLocation:plotSpace.xRange.location length:CPDecimalFromFloat(graphScaleX)];
    plotSpace.yRange = [CPPlotRange plotRangeWithLocation:plotSpace.yRange.location length:CPDecimalFromFloat(graphScaleY)];
}
Run Code Online (Sandbox Code Playgroud)

  • 你叫这个方法的地方? (2认同)

Dan*_*eel 7

您可以将plotSpace委托设置为符合CPTPlotSpaceDelegate协议的某个类实例(例如self)[plotSpace setDelegate:self];.

配置plotSpace,以便它与用户交互 [plotSpace setAllowsUserInteraction:YES];

然后在该类中实现此方法-(BOOL)plotSpace:(CPTPlotSpace *)space shouldScaleBy:(CGFloat)interactionScale aboutPoint:(CGPoint)interactionPoint.如果您希望corePlot自动调整图表大小,请返回YES.或者不做,并在之前的回答中做一些事情.

注意:如果您希望当前控制器类(self)成为委托,请确保您的界面如下所示@interface CurrentController : UISomeController<...,CPTPlotSpaceDelegate>{}.所以现在它符合CPTPlotSpaceDelegate协议.