Mercurial > public > stock-charts
annotate Sources/StockCharts/LineChart/LineChartView.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 | 46e874c1f459 |
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 // |
60
e16e6bdaa31d
Add dragGesture argument
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
31
diff
changeset
|
2 // LineChartView.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 |
60
e16e6bdaa31d
Add dragGesture argument
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
31
diff
changeset
|
10 public struct LineChartView: 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]? |
60
e16e6bdaa31d
Add dragGesture argument
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
31
diff
changeset
|
14 public var dragGesture: Bool? |
108
f53d8b9ca92b
Custom style implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
98
diff
changeset
|
15 public var style: LineChartStyle |
5
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
16 |
29
3204b99365d4
Test public init and struct
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
28
diff
changeset
|
17 @State var showingIndicators = false |
3204b99365d4
Test public init and struct
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
28
diff
changeset
|
18 @State var indexPosition = Int() |
5
f828c7c408d4
Add source code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
19 |
108
f53d8b9ca92b
Custom style implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
98
diff
changeset
|
20 public init(data: [Double], dates: [String]?, hours: [String]?, dragGesture: Bool?, style: LineChartStyle) { |
26
787ad339ba72
Add public initializer to ChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
24
diff
changeset
|
21 self.data = data |
787ad339ba72
Add public initializer to ChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
24
diff
changeset
|
22 self.dates = dates |
787ad339ba72
Add public initializer to ChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
24
diff
changeset
|
23 self.hours = hours |
61
d689500c785e
Add init to new argument dragGesture
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
60
diff
changeset
|
24 self.dragGesture = dragGesture |
108
f53d8b9ca92b
Custom style implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
98
diff
changeset
|
25 self.style = style |
26
787ad339ba72
Add public initializer to ChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
24
diff
changeset
|
26 } |
787ad339ba72
Add public initializer to ChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
24
diff
changeset
|
27 |
17
c0c129bdf65d
Rename project
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
14
diff
changeset
|
28 public var body: some View { |
91
b9aa9d7b030d
Handle input data when is empty
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
68
diff
changeset
|
29 if !data.isEmpty { |
b9aa9d7b030d
Handle input data when is empty
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
68
diff
changeset
|
30 VStack { |
b9aa9d7b030d
Handle input data when is empty
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
68
diff
changeset
|
31 if dragGesture ?? true { |
108
f53d8b9ca92b
Custom style implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
98
diff
changeset
|
32 ChartLabel(data: data, dates: dates, hours: hours, style: style, indexPosition: $indexPosition) |
91
b9aa9d7b030d
Handle input data when is empty
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
68
diff
changeset
|
33 .opacity(showingIndicators ? 1: 0) |
b9aa9d7b030d
Handle input data when is empty
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
68
diff
changeset
|
34 } |
b9aa9d7b030d
Handle input data when is empty
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
68
diff
changeset
|
35 |
108
f53d8b9ca92b
Custom style implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
98
diff
changeset
|
36 LineView(data: data, dates: dates, hours: hours, dragGesture: dragGesture, style: style, showingIndicators: $showingIndicators, indexPosition: $indexPosition) |
68
34844d649ed7
Hide ChartLabel on dragGesture
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
67
diff
changeset
|
37 } |
5
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 } |