0
두 개의 y 축과 x 축을 포함하는 선 그래프를 그렸습니다.coreplot/ios 8을 확대 또는 축소하는 코드 작성 방법은 무엇입니까?
이제 확대/축소 및 축소를위한 제한/제한을 원합니다. 나는
-(CPTPlotRange*)plotSpace:(CPTPlotSpace *)space willChangePlotRangeTo:(CPTPlotRange *)newRange forCoordinate:(CPTCoordinate)coordinate
{
if([newRange locationDouble] < 0)
{
if(coordinate == CPTCoordinateX)
return [(CPTXYPlotSpace*)space xRange];
else if(coordinate == CPTCoordinateY)
return [(CPTXYPlotSpace*)space yRange];
}
if([newRange locationDouble] < 1000)
{
if(coordinate == CPTCoordinateX)
return [(CPTXYPlotSpace*)space xRange];
else if(coordinate == CPTCoordinateY)
return [(CPTXYPlotSpace*)space yRange];
}
return newRange;
}
and for zooming i used following code
-(BOOL)plotSpace:(CPTPlotSpace *)space shouldScaleBy:(CGFloat)interactionScale aboutPoint:(CGPoint)interactionPoint
{
CPTGraph *graph = self.hostView.hostedGraph;
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)graph.defaultPlotSpace;
// plotSpace.delegate = self;
NSInteger xAxisMin = 0;
NSInteger xAxisMax = 15;
NSInteger yAxisMin = 0;
NSInteger yAxisMax = 100;
if ((plotSpace.xRange>= [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(xAxisMin) length:CPTDecimalFromDouble(2*(xAxisMax-xAxisMin))])||
((plotSpace.yRange>= [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(yAxisMin) length:CPTDecimalFromDouble(2*(yAxisMax-yAxisMin))])))
{
//return NO;
plotSpace.allowsUserInteraction = YES;
CPTGraph *graph = self.hostView.hostedGraph;
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)graph.defaultPlotSpace;
plotSpace.delegate = self;
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(xAxisMin) length:CPTDecimalFromFloat(xAxisMax - xAxisMin)];
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(yAxisMin) length:CPTDecimalFromFloat(yAxisMax - yAxisMin)];
plotSpace.allowsUserInteraction = YES;
return YES;
}
else if ((plotSpace.xRange<= [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(xAxisMin) length:CPTDecimalFromDouble((xAxisMax-xAxisMin)/2)])||
((plotSpace.yRange<= [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(yAxisMin) length:CPTDecimalFromDouble((yAxisMax-yAxisMin)/2)])))
{
//[_hostingView setAllowPinchScaling:NO];
plotSpace.allowsUserInteraction = YES;
//return NO;
CPTGraph *graph = self.hostView.hostedGraph;
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)graph.defaultPlotSpace;
plotSpace.delegate = self;
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(xAxisMin) length:CPTDecimalFromFloat(xAxisMax - xAxisMin)];
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(yAxisMin) length:CPTDecimalFromFloat(yAxisMax - yAxisMin)];
plotSpace.allowsUserInteraction = YES;
// [hostingView setAllowPinchScaling:YES];
return YES;
}
return YES;
}
에 제한을 제공하기 위해 다음 코드를 사용하지만, 문제는 shouldScaleBy 위에 이것이다 : 대표는 호출하지 않습니다. 이것이 호출되지 않는 이유를 이해할 수 없습니다.
확대/축소하고 축소하려면 코드를 입력하십시오.
이 링크는 이미 몇 가지 예제를 제공하시기 바랍니다 질문을 보였다 http://stackoverflow.com/questions/tagged/core-plot?sort=active –
당신이 당신의 쿼리를 찾을 관련 핵심 플롯 할 수있는 당신을 도울 수 – user2914924
대리자에게 전달 된 플롯 공간 매개 변수를 사용해야합니다. 이를 통해 두 개 이상의 플롯 공간에 대해 동일한 델리게이트를 사용할 수 있으며 다른 프로젝트에서 코드를 더 쉽게 재사용 할 수 있습니다. –