add personal charts project
layout of header graph view
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user