Swift - 第三方图表库Charts使用详解4(折线图3:选中点高亮、十字线样式)

三、选中后十字线样式
当我们选中某个拐点时,该点会高亮(显示十字线),这个十字线的样式是可以修改的。

1,修改十字线的样式
原文:Swift - 第三方图表库Charts使用详解4(折线图3:选中点高亮、十字线样式)

chartDataSet.highlightColor = .blue //十字线颜色
chartDataSet.highlightLineWidth = 2 //十字线线宽
chartDataSet.highlightLineDashLengths = [4, 2] //使用虚线样式的十字线

2,只显示部分十字线
(1)只显示横向十字线
原文:Swift - 第三方图表库Charts使用详解4(折线图3:选中点高亮、十字线样式)

chartDataSet.drawVerticalHighlightIndicatorEnabled = false //不显示纵向十字线

(2)只显示纵向十字线
原文:Swift - 第三方图表库Charts使用详解4(折线图3:选中点高亮、十字线样式)

chartDataSet.drawHorizontalHighlightIndicatorEnabled = false //不显示横向十字线

3,不显示十字线
原文:Swift - 第三方图表库Charts使用详解4(折线图3:选中点高亮、十字线样式)

chartDataSet.highlightEnabled = false //不启用十字线

附:拐点被选中后自动改变颜色
1,效果图
当一个拐点被选中后默认只会在它的位置处显示一个十字线,这样可能还不够明显。下面我们将选中点的颜色做个变化,这样就与其他的点区分开了。
原文:Swift - 第三方图表库Charts使用详解4(折线图3:选中点高亮、十字线样式)

2,样例代码

import UIKit
import Charts

class ViewController: UIViewController, ChartViewDelegate {

//折线图
var chartView: LineChartView!
 
//所有点的颜色
var circleColors: [UIColor] = []
 
override func viewDidLoad() {
    super.viewDidLoad()
     
    //创建折线图组件对象
    chartView = LineChartView()
    chartView.frame = CGRect(x: 20, y: 80, width: self.view.bounds.width - 40,
                             height: 270)
    chartView.delegate = self //设置代理
    self.view.addSubview(chartView)
     
    //生成10条随机数据
    var dataEntries = [ChartDataEntry]()
    for i in 0..<10 {
        let y = arc4random()%100
        let entry = ChartDataEntry.init(x: Double(i), y: Double(y))
        dataEntries.append(entry)
        //每个点默认颜色都是蓝色
        circleColors.append(.cyan)
    }
     
    //这10条数据作为1根折线里的所有数据
    let chartDataSet = LineChartDataSet(values: dataEntries, label: "图例1")
    //目前折线图只包括1根折线
    let chartData = LineChartData(dataSets: [chartDataSet])
    //设置折点颜色
    chartDataSet.circleColors = circleColors

    //设置折现图数据
    chartView.data = chartData
}
 
//折线上的点选中回调
func chartValueSelected(_ chartView: ChartViewBase, entry: ChartDataEntry,
                        highlight: Highlight) {
    print("选中了一个数据")
     
    //将选中的数据点的颜色改成黄色
    var chartDataSet = LineChartDataSet()
    chartDataSet = (chartView.data?.dataSets[0] as? LineChartDataSet)!
    let values = chartDataSet.values
    let index = values.index(where: {$0.x == highlight.x})  //获取索引
    chartDataSet.circleColors = circleColors //还原
    chartDataSet.circleColors[index!] = .orange
     
    //重新渲染表格
    chartView.data?.notifyDataChanged()
    chartView.notifyDataSetChanged()
}
 
//折线上的点取消选中回调
func chartValueNothingSelected(_ chartView: ChartViewBase) {
    print("取消选中的数据")
     
    //还原所有点的颜色
    var chartDataSet = LineChartDataSet()
    chartDataSet = (chartView.data?.dataSets[0] as? LineChartDataSet)!
    chartDataSet.circleColors = circleColors
     
    //重新渲染表格
    chartView.data?.notifyDataChanged()
    chartView.notifyDataSetChanged()
}

}

原文出自:www.hangge.com 原文链接:https://www.hangge.com/blog/cache/detail_2126.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值