【问题标题】:Show loading indicator while graph is loading in Highcharts在 Highcharts 中加载图表时显示加载指示器
【发布时间】:2021-03-26 18:23:35
【问题描述】:

我正在一个使用 Swift 语言的 iOS 项目中使用 Highcharts 框架生成图表。

生成图的函数如下。

   private func createBUGraph()
{
    let chartView = HIChartView(frame: self.chartHolderViewOutlet.bounds)
    

    let options = HIOptions()
    

    let title = HITitle()
    title.text = "UTS"
    options.title = title
    let subtitle = HISubtitle()
    subtitle.text = "Sales & Margin"
    options.subtitle = subtitle
    
    let xAxis = HIXAxis()
    xAxis.categories = ["A", "B", "C", "D"]//
    options.xAxis = [xAxis]

    let yAxis = HIYAxis()
    //yAxis.min = 0
    yAxis.title = HITitle()
    yAxis.title.text = "Sales"
    yAxis.lineWidth = 1
    

    let y2Axis = HIYAxis()
    y2Axis.title = HITitle()
    y2Axis.title.text = "Margin"
    y2Axis.lineWidth = 1
    y2Axis.tickPositions = [5,10,15,20]
    y2Axis.opposite = true
    options.yAxis = [yAxis,y2Axis]
    
    
    let Sales = HIColumn()
    Sales.name = "Sales"
    Sales.data = [3, 2, 1, 3]

    let SalesForecast = HIColumn()
    SalesForecast.name = "Sales Forecast"
    SalesForecast.data = 2, 3, 5, 7]
    
    let Margin = HISeries()
    Margin.name = "Margin"
    Margin.data = [2.5, 1.2, 8.5, 5.5]
    Margin.marker = HIMarker()
    Margin.marker.lineWidth = 2
    Margin.marker.symbol = "circle"
   
    
    let MarginForeast = HISeries()
    MarginForeast.name = "Margin Foreast"
    MarginForeast.data = [3, 2.67, 3, 6.33] //
    MarginForeast.marker = HIMarker()
    MarginForeast.marker.lineWidth = 2
    MarginForeast.marker.symbol = "circle"
    
    
    options.series = [Sales, SalesForecast, Margin, MarginForeast]

    chartView.options = options
    
    self.chartHolderViewOutlet.addSubview(chartView)
}

在加载图表时,我需要在图表中显示加载指示器。有什么办法可以证明吗?

或者有什么方法可以知道图表是否已经完成加载?

提前致谢

【问题讨论】:

    标签: ios swift charts highcharts swift3


    【解决方案1】:

    在您调用 Chart 方法时添加任何加载器,并在加载图表时停止加载器。

    这些是加载器库,您可以使用任何其他加载器或苹果的默认加载器。

    1.https://github.com/ninjaprox/NVActivityIndi​​catorView 2.https://github.com/relatedcode/ProgressHUD

    【讨论】:

    • 我正在寻找类似 highcharts 框架的完成处理程序。
    【解决方案2】:

    你可以试试这个

    func createBUGraph(completion: (Bool) -> ()) {
        // do stuff here 
        completion(true)
    }
        
    createBUGraph(completion: { (success) -> Void in
        // add loader
        if success {
            print("true")
            // hide loader
        }
    })
    

    【讨论】:

      【解决方案3】:

      您不妨使用自己的加载器并在图表加载时显示它。
      然后你可以使用HIChartViewDelegate中的chartViewDidLoad函数隐藏它

      API: https://api.highcharts.com/ios/highcharts/Protocols/HIChartViewDelegate.html#//api/name/chartViewDidLoad

      【讨论】:

      • 我尝试使用文档中提到的委托功能。但不知何故,委托函数没有被调用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多