简体   繁体   English

core-plot:用户交互仅限x轴

[英]core-plot : Scalling only x-axis by User Interaction

Working Core-Plot on iOS. 在iOS上运行Core-Plot。 I am setting plotSpace.allowsUserInteraction = YES . 我正在设置plotSpace.allowsUserInteraction = YES

I want to do scaling only X-axis by pinch. 我想通过捏缩放X轴。

For Example, max-range of Y-axis always view 100. max-range of X-axis view 60 to 120. 例如,Y轴的最大范围始终为100.X轴视图的最大范围为60至120。

I think best solution that only X-axis scaling by horizon-pinch, Y-axis scalling by vertical-pinch. 我认为最好的解决方案是只有X轴通过水平夹点缩放,Y轴通过垂直夹点缩放。

[[self.graph defaultPlotSpace] setAllowsUserInteraction:YES];
[self.graph defaultPlotSpace].delegate = self;

than in delegate you want smth. 比代表你想要smth。 like this 像这样

- (CPTPlotRange *)plotSpace:(CPTPlotSpace *)space willChangePlotRangeTo:(CPTPlotRange *)newRange forCoordinate:(CPTCoordinate)coordinate {

    if (CPTCoordinateY == coordinate) {
        CGRect chartBounds = self.graph.bounds;
        return [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(chartBounds.origin.y) length:CPTDecimalFromFloat(chartBounds.size.height)];
    }

    return newRange;
}

Use a plot space delegate. 使用绘图空间委托。 Implement the -plotSpace:willChangePlotRangeTo:forCoordinate: delegate method and always return the original yRange for the CPTCoordinateY . 实现-plotSpace:willChangePlotRangeTo:forCoordinate: delegate方法并始终返回yRange的原始CPTCoordinateY

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM