2017-02-27 1 views
0

を働いていない私は、次のチャートいる:私は日曜日、月曜日と水曜日のバーをタップすると、それはスウィフト:IOS-チャートタップハンドラが正しく

graphView

応答しません。私がTueバーをタップすると、それは応答し、正しく "2"(3番目のバーを意味する)を印刷します。テーブルの残りの部分をタップすると、基本的に木曜日のバーがタップされたことを意味する "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

明らかに、注文を追加する問題でした。データを順不同(つまり、木、金、火、土など)に挿入すると、タップアクションが間違っているようです。 私は日曜日、月曜日、火曜日、水曜日に辞書をソートしてこの問題を解決しました...

関連する問題