首页 > 解决方案 > 如何使用步进值更新折线图?

问题描述

我有一个简单的 a*x+b 折线图示例。

import UIKit
import Charts

class ViewController: UIViewController {

@IBOutlet weak var lineChart: LineChartView!

@IBOutlet weak var bStepper: UIStepper!
@IBOutlet weak var aStepper: UIStepper!

var aValue: Double = 1
var bValue: Double = 1

var dataEntries = [ChartDataEntry]()

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    aValue = aStepper.value
    bValue = bStepper.value

    updateChartData()
}

@IBAction func aChange(_ sender: UIStepper) {
    aValue = sender.value
    updateChartData()
}

@IBAction func bChange(_ sender: UIStepper) {
    bValue = sender.value
    updateChartData()
}

func updateChartData() {
    lineChart.noDataText = "No data"
    for i in -10...10 {
        let dataEntry = ChartDataEntry(x: Double(i), y: aValue*Double(i)+bValue)
        dataEntries.append(dataEntry)
    }
    let lineFuncOne = LineChartDataSet(entries: dataEntries, label: nil)
    lineFuncOne.colors = [NSUIColor.blue]
    let chartData = LineChartData(dataSet: lineFuncOne)
    lineChart.data = chartData
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

我想创建一个方法,每次我在我的应用程序中增加或减少步进器的值时,用 a 和 b 步进器的值更新折线图 (a*x+b)。你能帮我创建这个解决方案吗?我已经开始了我的旅程并就此停止。

标签: iosswiftchartslinechartios-charts

解决方案


我自己解决了这个问题,将 var dataEntries = ChartDataEntry 放入 updateChartData() 并对来自发送者 insinde updateChartData() 的 a、b 值进行操作


推荐阅读