add personal charts project

layout of header graph view
This commit is contained in:
Trey t
2022-01-17 14:23:06 -06:00
parent c5be6e0cc9
commit fd185ac80f
4 changed files with 110 additions and 31 deletions

View File

@@ -53,6 +53,8 @@ struct HeaderStatsView : UIViewRepresentable {
chart.xAxis.drawGridLinesEnabled = false
chart.leftAxis.drawGridLinesEnabled = false
chart.rightAxis.drawGridLinesEnabled = false
chart.leftAxis.axisLineColor = .clear
chart.rightAxis.axisLineColor = .clear
@@ -61,29 +63,43 @@ struct HeaderStatsView : UIViewRepresentable {
chart.drawBordersEnabled = false
chart.drawMarkers = false
// chart.yAxis.drawGridLinesEnabled = false
chart.rightAxis.drawGridLinesEnabled = false
chart.borderColor = .clear
//it is convenient to form chart data in a separate func
chart.data = addData()
let data = BarChartData()
let dataSet = dataSet()
data.append(dataSet)
chart.data = data
dataSet.valueFormatter = DefaultValueFormatter(decimals: 0)
return chart
}
// this func is required to conform to UIViewRepresentable protocol
func updateUIView(_ uiView: BarChartView, context: Context) {
//when data changes chartd.data update is required
uiView.data = addData()
let data = BarChartData()
let dataSet = dataSet()
data.append(dataSet)
uiView.data = data
dataSet.valueFormatter = DefaultValueFormatter(decimals: 0)
}
func addData() -> BarChartData{
let data = BarChartData()
//BarChartDataSet is an object that contains information about your data, styling and more
func dataSet() -> BarChartDataSet {
let dataSet = BarChartDataSet(entries: entries)
// change bars color to green
dataSet.colors = Mood.allValues.map({ NSUIColor( $0.color ) })
//change data label
data.append(dataSet)
return data
dataSet.secondaryTextColor = UIColor.systemGray
dataSet.valueColors = [.white]
if let descriptor = UIFontDescriptor.preferredFontDescriptor(
withTextStyle: .body).withSymbolicTraits([.traitBold]) {
dataSet.valueFont = UIFont(descriptor: descriptor, size: 0)
} else {
dataSet.valueFont = UIFont.preferredFont(forTextStyle: .body)
}
return dataSet
}
typealias UIViewType = BarChartView