Mercurial > public > stock-charts
annotate Sources/StockCharts/LineChart/Helpers/ChartLabel.swift @ 108:f53d8b9ca92b
Custom style implemented
author | Dennis Concepción Martín <dennisconcepcionmartin@gmail.com> |
---|---|
date | Sun, 04 Jul 2021 16:40:24 +0100 |
parents | 0c0d38dca6d8 |
children | 5057c45046c1 |
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 { |
24
127af64e264e
Change var to public var
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
21
diff
changeset
|
11 public var data: [Double] |
127af64e264e
Change var to public var
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
21
diff
changeset
|
12 public var dates: [String]? |
127af64e264e
Change var to public var
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
21
diff
changeset
|
13 public var hours: [String]? |
108
f53d8b9ca92b
Custom style implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
106
diff
changeset
|
14 public var style: LineChartStyle |
5
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
15 |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
16 @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
|
17 |
20
24dfde3727c1
Make variables and structures public
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
14
diff
changeset
|
18 public var body: some View { |
5
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
19 HStack { |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
20 Group { |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
21 if let dates = self.dates { |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
22 let date = formatStringDate(dates[indexPosition]) |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
23 Text(date) |
101
ffc7731f7206
Change opacity
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
100
diff
changeset
|
24 .opacity(0.5) |
5
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
25 } |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
26 if let hours = self.hours { |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
27 let hour = hours[indexPosition] |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
28 Text(hour) |
101
ffc7731f7206
Change opacity
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
100
diff
changeset
|
29 .opacity(0.5) |
5
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
30 } |
103
766a1169564b
Add WatchOS compatability
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
101
diff
changeset
|
31 |
5
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
32 Text("\(data[indexPosition], specifier: "%.2f")") |
108
f53d8b9ca92b
Custom style implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
106
diff
changeset
|
33 .foregroundColor(style.labelColor) |
103
766a1169564b
Add WatchOS compatability
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
101
diff
changeset
|
34 |
5
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
35 } |
100
721885770d23
Change font
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
99
diff
changeset
|
36 .font(.caption) |
5
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
37 } |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
38 } |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
39 |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
40 /* |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
41 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
|
42 to long default string format |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
43 */ |
20
24dfde3727c1
Make variables and structures public
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
14
diff
changeset
|
44 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
|
45 let dateFormatter = DateFormatter() |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
46 dateFormatter.dateFormat = "yy-MM-dd" |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
47 let date = dateFormatter.date(from: stringDate) |
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 // Format date to the final format |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
50 dateFormatter.dateStyle = .long |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
51 let finalDate = dateFormatter.string(from: date!) |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
52 |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
53 return finalDate |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
54 } |
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
55 } |