调用时,我无法正确定义LineChartView的翻译/中心:
zoom(scaleX: CGFloat, scaleY: CGFloat, x: CGFloat, y: CGFloat)我想存储用户选择的scale & center,然后用它重新创建用户早期的scale & center设置。
scaleX和scaleY从以下位置很好地到达:
chartScaled(_ chartView: ChartViewBase, scaleX: CGFloat, scaleY: CGFloat)但是,我无法获得/计算x: & y:的正确位移值,因为它们是缩放中心的坐标(以像素为单位)。我试过使用在调用chartViewDidEndPanning(_ chartView: ChartViewBase)时读取的transX = lineChartView.viewPortHandler.transX。
我在调用zoom之前调用了fitScreen(),因此我得到了以下结果:
lineChartView.fitScreen() // reset settings
lineChartView.zoom(scaleX: xScale, scaleY: 1.0, x: lineChartView.centerOffsets.x + transX, y: lineChartView.centerOffsets.y + transY)然而,这并不起作用-所有的智慧都欣然接受。
使用ios-charts 3.5.0、ios 14.1、swift 5
发布于 2020-11-24 18:53:51
最初的问题是ios-charts visible data in LineChartView的副本,我希望我能早点找到它。因此,沿着X轴的解决方案是在回调chartScaled()和chartViewDidEndPanning()中记录值LineChartView.lowestVisibleX
然后使用LineChartView.zoomToCenter()应用缩放,然后使用LineChartView.moveViewToX(lowestVisibleX)应用X位移
到目前为止,我还没有找到用于lowestVisibleX的Y等效项,所以我还没有针对Y使用LineChartView.moveViewToY()的解决方案。
有人有什么想法吗?
https://stackoverflow.com/questions/64959440
复制相似问题