annotate Sources/StockCharts/LineChart/Helpers/ChartLabel.swift @ 116:5057c45046c1

Add default initializers
author Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
date Mon, 09 Aug 2021 16:32:45 +0100
parents f53d8b9ca92b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
1 //
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
2 // ChartLabel.swift
21
5135ff3343ae Rename project to StockCharts
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 20
diff changeset
3 // StockCharts
5
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
4 //
21
5135ff3343ae Rename project to StockCharts
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 20
diff changeset
5 // Created by Dennis Concepción Martín on 30/4/21.
5
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
6 //
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
7
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
8 import SwiftUI
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
9
20
24dfde3727c1 Make variables and structures public
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 14
diff changeset
10 public struct ChartLabel: View {
116
5057c45046c1 Add default initializers
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 108
diff changeset
11 public var lineChartController: LineChartController
5
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
12
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
13 @Binding var indexPosition: Int // Data point position
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
14
20
24dfde3727c1 Make variables and structures public
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 14
diff changeset
15 public var body: some View {
5
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
16 HStack {
116
5057c45046c1 Add default initializers
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 108
diff changeset
17 if let dates = lineChartController.dates {
5057c45046c1 Add default initializers
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 108
diff changeset
18 let date = formatStringDate(dates[indexPosition])
5057c45046c1 Add default initializers
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 108
diff changeset
19 Text(date)
5057c45046c1 Add default initializers
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 108
diff changeset
20 .opacity(0.5)
5
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
21 }
116
5057c45046c1 Add default initializers
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 108
diff changeset
22
5057c45046c1 Add default initializers
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 108
diff changeset
23 if let hours = lineChartController.hours {
5057c45046c1 Add default initializers
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 108
diff changeset
24 let hour = hours[indexPosition]
5057c45046c1 Add default initializers
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 108
diff changeset
25 Text(hour)
5057c45046c1 Add default initializers
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 108
diff changeset
26 .opacity(0.5)
5057c45046c1 Add default initializers
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 108
diff changeset
27 }
5057c45046c1 Add default initializers
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 108
diff changeset
28
5057c45046c1 Add default initializers
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 108
diff changeset
29 Text("\(lineChartController.prices[indexPosition], specifier: "%.2f")")
5057c45046c1 Add default initializers
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 108
diff changeset
30 .foregroundColor(lineChartController.labelColor)
5
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
31 }
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
32 }
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
33
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
34 /*
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
35 Take string in format yy-MM-dd (2021-01-01) and transform it
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
36 to long default string format
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
37 */
20
24dfde3727c1 Make variables and structures public
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 14
diff changeset
38 public func formatStringDate(_ stringDate: String) -> String {
5
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
39 let dateFormatter = DateFormatter()
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
40 dateFormatter.dateFormat = "yy-MM-dd"
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
41 let date = dateFormatter.date(from: stringDate)
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
42
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
43 // Format date to the final format
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
44 dateFormatter.dateStyle = .long
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
45 let finalDate = dateFormatter.string(from: date!)
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
46
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
47 return finalDate
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
48 }
f828c7c408d4 Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
49 }