如何更新 IOS 图表中的限制线,danielgindi/Charts
How do I update the limit lines in IOS Charts, danielgindi/Charts
所以我添加了一些限制线。
func addLimitLines() {
let stopLoss = ChartLimitLine(limit: Double(1.70) , label: "stop loss")
stopLoss.lineWidth = 0.5
stopLoss.lineColor = .blue
stopLoss.lineDashLengths = [8.0]
chartView.rightAxis.addLimitLine(stopLoss)
let takeProfit = ChartLimitLine(limit: Double(1.68), label: "take profit")
takeProfit.lineWidth = 0.5
takeProfit.lineColor = .blue
takeProfit.lineDashLengths = [8.0]
chartView.rightAxis.addLimitLine(takeProfit)
chartView.reloadInputViews()
}
@IBAction func stopLossChange(_ sender: UISlider) {
//slider action for updating the stoploss limitline
}
@IBAction func takeProfitChange(_ sender: UISlider) {
//slider action for updating the takeprofit limitline
}
现在我想在移动滑块时更新限制线值。
虽然在 Charts
的 Android 版本中我们有 invalidate()
刷新 chartView
但在 iOS 中我看不到它可用。在 iOS 中,我使用 animate
方法更新数据,我相信你也可以按如下方式实现,
@IBAction func stopLossChange(_ sender: UISlider) {
self.updateLineLimit(Double(sender.value), label: "stop loss")
}
@IBAction func takeProfitChange(_ sender: UISlider) {
self.updateLineLimit(Double(sender.value), label: "take profit")
}
private func updateLineLimit(_ value: Double, label: String) {
if let line = chartView.rightAxis.limitLines.filter({ [=10=].label == label }).first {
line.limit = value
chartView.animate(yAxisDuration: 0.00001)
}
}
所以我添加了一些限制线。
func addLimitLines() {
let stopLoss = ChartLimitLine(limit: Double(1.70) , label: "stop loss")
stopLoss.lineWidth = 0.5
stopLoss.lineColor = .blue
stopLoss.lineDashLengths = [8.0]
chartView.rightAxis.addLimitLine(stopLoss)
let takeProfit = ChartLimitLine(limit: Double(1.68), label: "take profit")
takeProfit.lineWidth = 0.5
takeProfit.lineColor = .blue
takeProfit.lineDashLengths = [8.0]
chartView.rightAxis.addLimitLine(takeProfit)
chartView.reloadInputViews()
}
@IBAction func stopLossChange(_ sender: UISlider) {
//slider action for updating the stoploss limitline
}
@IBAction func takeProfitChange(_ sender: UISlider) {
//slider action for updating the takeprofit limitline
}
现在我想在移动滑块时更新限制线值。
虽然在 Charts
的 Android 版本中我们有 invalidate()
刷新 chartView
但在 iOS 中我看不到它可用。在 iOS 中,我使用 animate
方法更新数据,我相信你也可以按如下方式实现,
@IBAction func stopLossChange(_ sender: UISlider) {
self.updateLineLimit(Double(sender.value), label: "stop loss")
}
@IBAction func takeProfitChange(_ sender: UISlider) {
self.updateLineLimit(Double(sender.value), label: "take profit")
}
private func updateLineLimit(_ value: Double, label: String) {
if let line = chartView.rightAxis.limitLines.filter({ [=10=].label == label }).first {
line.limit = value
chartView.animate(yAxisDuration: 0.00001)
}
}