问题
I utilize https://github.com/danielgindi/Charts in my project.
Here is my code, this is how I declare my ViewController class:
class ViewController: UIViewController, ChartViewDelegate
declaration of chartView
@IBOutlet weak var chartView: LineChartView!
inside viewDidLoad()
self.chartView.delegate = self
and this is how I implement delegate method
func chartValueSelected(chartView: ChartViewBase, entry: ChartDataEntry, dataSetIndex: Int, highlight: Highlight)
{
print(dataSetIndex)
}
For some reason, when I swipe across the chart, this method never gets called. Any ideas why this might happen?
Thanks in advance
回答1:
As I may have expected, the problem was Swift 3 difference in method signature.
Swift 3
func chartValueSelected(_ chartView: ChartViewBase, entry: ChartDataEntry, highlight: Highlight) { ... }
回答2:
Check with a breakpoint if chatView is initialized in viewDidLoad and check its delegate, then check if the method which call the delegate has ever been called. You can use po chartView.delegate in the terminal screen Maybe you are not selecting the chart, this is not a touch up inside button, to call the selected method you have to set selected, if you want this to work like a button maybe there are an action called setHighlighted...
来源:https://stackoverflow.com/questions/40112484/chartvalueselected-never-gets-called