所以我试图在Core plot中获得合适的x轴滚动。
到目前为止我所做的是将globalXRange
设置为大的值,并通过停止x轴上的更改来启用x轴上的缩放。缩放效果很好,看起来不错。我试着平移,它的可怕。它只有在我抬起手指后才起作用,它根本不流畅:(我错过了什么吗?
# pragma mark -
#pragma mark PlotSpace Delegates
- (CGPoint)plotSpace:(CPTPlotSpace *)space willDisplaceBy:(CGPoint)proposedDisplacementVector{
return CGPointMake(proposedDisplacementVector.x, 0);
}
- (BOOL)plotSpace:(CPTPlotSpace *)space shouldScaleBy:(CGFloat)interactionScale aboutPoint:(CGPoint)interactionPoint {
return YES;
}
- (CPTPlotRange *)plotSpace:(CPTPlotSpace *)space willChangePlotRangeTo:(CPTPlotRange *)newRange forCoordinate:(CPTCoordinate)coordinate {
if (coordinate == CPTCoordinateX) {
return [CPTPlotRange plotRangeWithLocation:newRange.location length:newRange.length];
} else {
return [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0.0f) length:CPTDecimalFromFloat([self getMaxValue])];
}
return nil;
}
编辑:我尝试启用plotSpace.allowsMomentum = YES;
,但这没有帮助
答案 0 :(得分:1)
使用最新的(2.0)coreplot代码进行动量滚动,您可以进行平滑滚动,但仍然只能使用
限制滚动到一个轴- (CGPoint)plotSpace:(CPTPlotSpace *)space willDisplaceBy:(CGPoint)proposedDisplacementVector{
return CGPointMake(proposedDisplacementVector.x, 0);
}
此任务不需要willChangePlotRangeTo
方法。
注意:2.0 coreplot分支将被视为beta版,因此请谨慎使用(并经常拉动分支,因为正在进行持续的开发)。