Ios 核心打印:沿x轴平移和缩放两个打印空间,并自动缩放两个y轴
我有一个核心图,其中有两个直线图(图1在左舷上使用Ios 核心打印:沿x轴平移和缩放两个打印空间,并自动缩放两个y轴,ios,objective-c,cocoa-touch,core-plot,Ios,Objective C,Cocoa Touch,Core Plot,我有一个核心图,其中有两个直线图(图1在左舷上使用y-轴,图2在右舷上使用y2-轴)和两个图空间(lhsPlotSpace和rhsPlotSpace) 对于初始绘图设置,我使用scaleToFitPlots自动缩放两个绘图,效果与预期一致: [lhsPlotSpace scaleToFitPlots:lhsPlots]; [rhsPlotSpace scaleToFitPlots:rhsPlots]; 然后,该图看起来类似于下面的屏幕截图 为了显示更多细节,我希望允许用户水平平移和水平缩放,只
y
-轴,图2在右舷上使用y2
-轴)和两个图空间(lhsPlotSpace
和rhsPlotSpace
)
对于初始绘图设置,我使用scaleToFitPlots
自动缩放两个绘图,效果与预期一致:
[lhsPlotSpace scaleToFitPlots:lhsPlots];
[rhsPlotSpace scaleToFitPlots:rhsPlots];
然后,该图看起来类似于下面的屏幕截图
为了显示更多细节,我希望允许用户水平平移和水平缩放,只要左右两侧显示更多数据(平移和缩放应仅由用户沿x
-轴驱动)
应根据平移和缩放后可见的范围,自动缩放y轴和y2轴
你能帮我解决一下这个问题吗?我试图使用代理
根据我在核心绘图论坛中找到的代码示例,在StackOverFlow上,我尝试使用委托方法plotSpace:willChangePlotRangeTo:forCoordinate
- (CPTPlotRange *)plotSpace:(CPTPlotSpace *)space
willChangePlotRangeTo:(CPTPlotRange *)newRange
forCoordinate:(CPTCoordinate)coordinate
{
if (coordinate == CPTCoordinateY) {
newRange = ((CPTXYPlotSpace*)space).yRange;
return newRange
}
但除了得到非常基本的缩放,我没有找到一个解决方案,甚至接近我的问题
您能告诉我使用哪些代理方法、如何限制滚动以及在平移和缩放后如何以及在何处设置新的y
-比例因子吗
多谢各位
将每个绘图空间的
globalYRange
设置为相应的yRange
,以防止在y方向上缩放和滚动
-scaleToFitPlots:
在计算新范围时使用给定绘图的所有绘图数据。如果要根据可见数据缩放打印空间yRange
,则必须在“打印空间”委托中自己进行缩放。-plotSpace:willChangePlotRangeTo:forCoordinate:
委托方法是一个很好的选择