问题:
假设我有一个等式: y = x ^ 2
使用核心情节我这样做:
-(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot {
return 3000;
}
-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
{
NSNumber *num = nil;
switch ( fieldEnum ) {
case CPTScatterPlotFieldX:
num = [NSNumber numberWithUnsignedInteger:index];
break;
case CPTScatterPlotFieldY:
num = [NSNumber numberWithUnsignedInteger:index*index];
break;
}
return num;
}
但即使在缩小后(X轴显示从0到5000的点),这也只会绘制3000点。所以该区域的其他部分未提取。
我想要的是:缩小后,我可以在完全可见的区域刷新绘图。
有人知道怎么做吗?
答案 0 :(得分:0)
首先,我会将点数限制为不超过可用于绘制绘图的像素数。除此之外,只需要更多的时间来绘制没有明显的好处。查看绘图区域边界的大小以获取绘图区域的尺寸。如果您可能在具有Retina显示屏的设备上运行,请将宽度和高度乘以contentsScale
。
您可以使用绘图空间委托来查找用户缩放或滚动图表的时间。在委托方法内的图上调用reloadData
以重新计算绘图数据。