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
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 //
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 }