2017-02-27 46 views
0

我有以下圖表:斯威夫特:IOS-圖表自來水處理程序無法正常工作

graphView

當我在週日,週一和週三酒吧挖掘,它沒有響應。當我點擊Tue欄時,它響應並正確打印「2」(意思是第三欄)。當我點擊桌子上其餘的酒吧時,它會打印出「4」,這基本上意味着週四酒吧被挖掘。

這是我的代碼:

@IBOutlet weak var graphView: BarChartView! 
func updateGraph(){ 
    var dataEntries: [BarChartDataEntry] = [] 
    let timeSheet: TimeSheet = TimeSheet.getTimeSheet() 
    let weekData = timeSheet.getData() 
    let keys: [String] = weekData.allKeys as! [String] 
    for weekday in keys{ 
     let _weekday = weekday == "Sunday" ? 0 : weekday == "Monday" ? 1 : weekday == "Tuesday" ? 2: weekday == "Wednesday" ? 3 : weekday == "Thursday" ? 4 : weekday == "Friday" ? 5 : 6 
     let dayData = weekData.value(forKeyPath: weekday) as! NSDictionary 
     var totalWorkHour: Double = Double(dayData["totalWorkHour"] as! NSNumber) 
     totalWorkHour = Double(Int(totalWorkHour)/60*100 + Int(totalWorkHour)%60)/100 //Chaing minutes to hour format 
     let entry = BarChartDataEntry(x: Double(_weekday), y: totalWorkHour) 
     dataEntries.append(entry) 
    } 
    let graphDataSet = BarChartDataSet(values: dataEntries, label: nil) 
    graphDataSet.colors = ChartColorTemplates.colorful() //Make bars colorful 
    graphDataSet.axisDependency = .left 
    //graphDataSet.barBorderWidth = graphDataSet.barBorderWidth/2 
    let graphData = BarChartData(dataSet: graphDataSet) 
    graphView.data = graphData 
} 

func chartValueSelected(_ chartView: ChartViewBase, entry: ChartDataEntry, highlight: Highlight){ 
    print("\(entry.x)") 
} 

我基本沿襲ios-charts-api-tutorial

請讓我知道,如果你找出一些東西。

回答

0

顯然,這是追加訂單的問題。看起來如果我們不按順序插入數據(即星期四,星期五,星期二,星期六......),則點按操作會出錯。 我通過在Sun,Mon,Tue,Wed ...中排序詞典解決了這個問題...