放棄了一段時間後,我終於找到了解決辦法。您必須創建一個IAxisValueFormatter
並實現stringForValue
函數。例如,我想根據當前月份來格式化圖表以顯示過去的12個月。這裏是我的價值格式化:
import UIKit
import Charts
class MonthNumberFormatter: NSObject, IAxisValueFormatter {
private let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
private var startMonthIndex:Int!
convenience init(startMonthIndex: Int){
self.init()
self.startMonthIndex = startMonthIndex
}
private func getMonth(index: Int) -> Int{
return (index % months.count)
}
func stringForValue(_ value: Double, axis: AxisBase?) -> String{
let monthIndex:Int = self.getMonth(index: Int(value) + self.startMonthIndex)
let month = months[monthIndex]
return month
}
}
然後在您的圖表類 - >來得到當前的月份:
func getCurrentMonth()->Int? {
let todayDate = Date()
let myCalendar = NSCalendar(calendarIdentifier: .gregorian)
let myComponents = myCalendar?.components(.month, from: todayDate)
let month = myComponents?.month
return month
}
現在設置圖上的值
let xAxis = self.chartView.xAxis
let currentMonth = getCurrentMonth()
xAxis.valueFormatter = MonthNumberFormatter(startMonthIndex: currentMonth!)
你可以找到在下面的鏈接解決方案[鏈接](http://stackoverflow.com/questions/39049188/how-to-add-strings-on-x-axis-in-ios-charts) – Lun