Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
[ad_1]
import UIKit
import Charts
class BarChartViewTableViewCell: UITableViewCell {
@IBOutlet weak var graphTitleLabel: UILabel!
@IBOutlet weak var chartView: BarChartView!
@IBOutlet weak var xAxisLabelView: UIView!
@IBOutlet weak var monthLabel: UILabel!
var axisLabels: [GraphCircleDateView] = []
let viewModel = BarGraphViewModel()
override func awakeFromNib() {
tremendous.awakeFromNib()
setChart(dataPoints: [0,1,2,3,4,5,6,7,8,9,10,11,12], values: [30, 24, 50, 125, 40, 50, 66, 30, 0, 0, 0, 0,0])
setChartView()
addxAxisLabel()
setMarker()
}
func setMarker() {
let marker = XYMarkerView(shade: .selectedBlue, borderColor: .keyColor, font: UIFont.Gotham(), textColor: .keyColor, insets: UIEdgeInsets(high: 8, left: 8, backside: 14, proper: 8), unit: "점")
marker.chartView = chartView
marker.minimumSize = CGSize(width: 60, peak: 30)
chartView.marker = marker
**chartView.highlightValue(x: 3, dataSetIndex: 3, dataIndex: 3)
chartView.highlightValue(Spotlight(x: 3, dataSetIndex: 3, stackIndex: 3))**
}
func addxAxisLabel() {
var i = 0
//axisLabels.removeAll()
viewModel.barXPosition.forEach {
let circle = GraphCircleDateView(body: CGRect(x: $0 - 10, y: 14, width: 20, peak: 20))
circle.label.textual content = "0(i)"
axisLabels.append(circle)
i += 1
xAxisLabelView.addSubview(circle)
}
}
func setChartView() {
chartView.delegate = self
chartView.pinchZoomEnabled = false
chartView.scaleYEnabled = false
chartView.scaleXEnabled = true
chartView.zoom(scaleX: 1.5, scaleY: 1, x: 0, y: 0)
chartView.dragYEnabled = false
chartView.dragXEnabled = true
chartView.doubleTapToZoomEnabled = false
let xAxis = chartView.xAxis
xAxis.labelPosition = .backside
xAxis.labelFont = .systemFont(ofSize: 10)
xAxis.axisLineColor = .clear
xAxis.labelTextColor = .black
xAxis.gridColor = .clear
xAxis.spaceMin = 0.4
xAxis.spaceMax = 0.4
let leftAxis = chartView.leftAxis
leftAxis.labelFont = .systemFont(ofSize: 10)
leftAxis.labelCount = 3
leftAxis.labelPosition = .outsideChart
leftAxis.spaceTop = 0.5
leftAxis.axisLineColor = .clear
leftAxis.xOffset = 10
chartView.rightAxis.enabled = false
chartView.legend.enabled = false
chartView.backgroundColor = .systemGray6
chartView.layer.borderWidth = 0.2
chartView.layer.borderColor = UIColor.lightGray.cgColor
chartView.layer.cornerRadius = 5
}
func setChart(dataPoints: [Int], values: [Double]) {
// 데이터 생성
var dataEntries: [BarChartDataEntry] = []
var index = 0
for i in dataPoints {
let dataEntry = BarChartDataEntry(x: Double(i), y: values[index])
dataEntries.append(dataEntry)
index += 1
}
let chartDataSet = BarChartDataSet(entries: dataEntries, label: "최근 데이터")
// 바그래프에 데이터 레이블 삭제
chartDataSet.drawValuesEnabled = false
chartDataSet.setColor(.lightGray)
chartDataSet.highlightColor = .keyColor
chartDataSet.highlightAlpha = 1
// 데이터 삽입
let chartData = BarChartData(dataSet: chartDataSet)
chartView.knowledge = chartData
chartView.barData?.barWidth = 0.3
}
}
extension BarChartViewTableViewCell: ChartViewDelegate {
/// 선택하면 날짜 원 색상 변경
func chartValueSelected(_ chartView: ChartViewBase, entry: ChartDataEntry, spotlight: Spotlight) {
let index = Int(entry.x)
let preIndex = viewModel.barSelectedDateIndex
if preIndex == -1 {
axisLabels[index].view.backgroundColor = .keyColor
axisLabels[index].label.textColor = .white
} else if index != preIndex {
axisLabels[index].view.backgroundColor = .keyColor
axisLabels[index].label.textColor = .white
axisLabels[preIndex].view.backgroundColor = .systemGray6
axisLabels[preIndex].label.textColor = .black
}
viewModel.barSelectedDateIndex = index
}
}
enter hyperlink description right here
I used Charts/danielgindi..
When a graph is chosen, the spotlight works correctly. However what I would like is to spotlight the middle graph on the primary display screen when no graph is chosen.
chartView.highlightValue(x: 3, dataSetIndex: 3, dataIndex: 3)
chartView.highlightValue(Spotlight(x: 3, dataSetIndex: 3, stackIndex: 3))
I wrote the code in the identical method as above, however it failed. Assist me. everybody
[ad_2]