App*_*ain 12 iphone charts core-plot
iPhone上可以使用Core-Plot Chart组件实现放大和缩小吗?如果是的话请建议我怎么做?
提前致谢.
是的,我这样做是通过像这样调整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)
您可以将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协议.
| 归档时间: |
|
| 查看次数: |
10003 次 |
| 最近记录: |