本身chart这个图标库很强大,同时支持iOS和安卓,可以很好的保证两端的统一性,chart库包含折线,饼状图,柱状图等主流图标。项目本身也一直在使用这个图标。近期的需求是模仿 蚂蚁财富 收益曲线图的交互效果。而且chart本身在iOS端有交互效果,所以需要对其进行“改造”。下面就是实现效果。PS:安卓端可以直接通过 ChartGestureListener
去监听手势交互 setOnChartValueSelectedListener(this);
,
setOnChartGestureListener(this);
一、chart本身的手势交互
其实本身chartView 自身已经添加了手势,通过chartView.gestureRecognizers
可以查看,或者是 BarLineChartViewBase.swift
文件73行 对应 selector 在507行
internal var _tapGestureRecognizer: NSUITapGestureRecognizer!
internal var _doubleTapGestureRecognizer: NSUITapGestureRecognizer!
#if !os(tvOS)
internal var _pinchGestureRecognizer: NSUIPinchGestureRecognizer!
#endif
internal var _panGestureRecognizer: NSUIPanGestureRecognizer!
其中以点击事件为例,在点击的时候首先判断 data 是否为空,这个肯动都没问题。其次就是手势是否可用。也过。
然后就是判断用户是否允许高亮显示,对应的属性是 HighLightPerTapEnabled
,其实这里在data 初始化的时候可以设置
_lineChartDataSet