#ios #swift #charts #highcharts #swift3
#iOS #swift #Диаграммы #highcharts #swift3
Вопрос:
Я создаю график с использованием Highcharts framework в одном из проектов iOS с использованием языка Swift.
Функция для генерации графика выглядит следующим образом.
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 amp; 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)
}
Во время загрузки графика мне нужно отобразить индикатор загрузки на графике. Есть ли какой-нибудь способ показать это?
Или есть какой-либо способ узнать, завершил ли график загрузку или нет?
Заранее спасибо
Ответ №1:
Добавляйте любой загрузчик при каждом вызове метода диаграммы и останавливайте загрузчик при загрузке ваших диаграмм.
Это библиотека для загрузчика, которую вы можете использовать любой другой или загрузчик по умолчанию от Apple.
1.https://github.com/ninjaprox/NVActivityIndicatorView 2.https: //github.com/relatedcode/ProgressHUD
Комментарии:
1. Я ищу что-то вроде обработчика завершения для highcharts framework.
Ответ №2:
Вы можете попробовать это
func createBUGraph(completion: (Bool) -> ()) {
// do stuff here
completion(true)
}
createBUGraph(completion: { (success) -> Void in
// add loader
if success {
print("true")
// hide loader
}
})
Ответ №3:
Вы также можете использовать свой собственный загрузчик и показывать его при загрузке графика.
Затем вы можете скрыть его с помощью chartViewDidLoad
функции из HIChartViewDelegate
Комментарии:
1. Я попытался использовать функцию делегирования, как указано в документе. Но почему-то функция делегирования не вызывается.