点的坐标- ios-charts [Swift]

6l7fqoea  于 2023-05-16  发布在  Swift
关注(0)|答案(2)|浏览(245)

我在图书馆里找了两天,不幸的是,我无法找到如何在px中获得两个数据之间的空间。我的linechartview包含在一个UIScrollView中,目的是得到位于ScrollView中心的linechartview点的值。

ep6jt1vc

ep6jt1vc1#

通常,它有一个转换器将数据值转换为px值,如:

position.x = CGFloat(i) // index on x axis, like 0,1,2
position.y = 0.0
position = CGPointApplyAffineTransform(position, valueToPixelMatrix)

上面的代码取自internal func drawLabels,您应该看看
在这个位置之后是px。屏幕上的值。你只需要弄清楚你是如何得到它并传递给你的其他函数的,比如使用委托

cs7cruho

cs7cruho2#

使用https://github.com/danielgindi/Charts
您可以通过以下方式访问:

let yAxis: Double = 1000 // your value on y-Axis
let xAxis: Double = 5 // your value on x-Axis

let pixel: CGPoint = yourChartView.pixelForValues(x: xAxis, y: yAxis, axis: .right)

let yourDataArray = [ChartDataEntry]()
//... some code here for filling in data

//now, get then position
if let lastPosition = yourDataArray.last {
    let point:CGPoint = yourChartView.getPosition(entry lastPosition: lastPosition , axis: .right)
}

此外,您可以检查https://github.com/danielgindi/Charts/blob/master/Source/Charts/Utils/Transformer.swift是否使用:

let valueToPixelMatrix = yourChartView.getTransformer(forAxis: YAxis.AxisDependency.right).valueToPixelMatrix

相关问题