annotate Sources/StockCharts/CapsuleChart/CapsuleChartView.swift @ 110:b4901499ad40

Aligned Capsules
author Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
date Sun, 04 Jul 2021 17:04:17 +0100
parents 957989b1068d
children 5057c45046c1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
89
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
1 //
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
2 // CapsuleChartView.swift
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
3 // StockCharts
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
4 //
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 5/6/21.
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
6 //
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
7
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
8 import SwiftUI
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
9
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
10 public struct CapsuleChartView: View {
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
11 public var percentageOfWidth: CGFloat
108
f53d8b9ca92b Custom style implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 106
diff changeset
12 public var style: CapsuleChartStyle
89
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
13
108
f53d8b9ca92b Custom style implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 106
diff changeset
14 public init(percentageOfWidth: CGFloat, style: CapsuleChartStyle) {
89
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
15 self.percentageOfWidth = percentageOfWidth
108
f53d8b9ca92b Custom style implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 106
diff changeset
16 self.style = style
89
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
17 }
108
f53d8b9ca92b Custom style implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 106
diff changeset
18
89
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
19 public var body: some View {
109
957989b1068d Fixes GeometryReader alignment
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 108
diff changeset
20 GeometryReader { proxy in
110
b4901499ad40 Aligned Capsules
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 109
diff changeset
21 ZStack(alignment: .leading) {
89
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
22 Group {
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
23 Capsule()
106
0c0d38dca6d8 Change colours to native swiftUI
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 103
diff changeset
24 .foregroundColor(Color.gray)
89
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
25 .opacity(0.2)
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
26
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
27 Capsule()
108
f53d8b9ca92b Custom style implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 106
diff changeset
28 .foregroundColor(style.capsuleColor)
89
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
29 .frame(width: proxy.size.width * percentageOfWidth)
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
30 }
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
31 .frame(height: 10)
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
32 }
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
33 }
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
34 }
3e94c6721a6a Implement CapsuleChartView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
35 }