1 contributor
//
// SwiftUIView.swift
// USB Meter
//
// Created by Bogdan Timofte on 14/03/2020.
// Copyright © 2020 Bogdan Timofte. All rights reserved.
//
import SwiftUI
struct RSSIView: View {
var RSSI: Int
var body: some View {
GeometryReader { box in
HStack (alignment: VerticalAlignment.bottom, spacing: 3) {
ZStack {
Rectangle().stroke()
if self.RSSI >= -110 {
Rectangle()
.foregroundColor(self.clr())
}
}
.frame(height: box.size.height * 0.2)
ZStack {
Rectangle().stroke()
if self.RSSI >= -100 {
Rectangle()
.foregroundColor(self.clr())
}
}
.frame(height: box.size.height * 0.4)
ZStack {
Rectangle().stroke()
if self.RSSI >= -80 {
Rectangle()
.foregroundColor(self.clr())
}
}
.frame(height: box.size.height * 0.6)
ZStack {
Rectangle().stroke()
if self.RSSI >= -60 {
Rectangle()
.foregroundColor(self.clr())
}
}
.frame(height: box.size.height * 0.8)
ZStack {
Rectangle().stroke()
if self.RSSI >= -50 {
Rectangle()
.foregroundColor(self.clr())
}
}
.frame(height: box.size.height/1)
}
}
}
private func clr() -> Color {
switch RSSI {
case let x where x < -100:
return .red
case let x where x < -80:
return .orange
default:
return .green
}
}
}
struct SwiftUIView_Previews: PreviewProvider {
static var previews: some View {
RSSIView(RSSI: -80).frame(width: 64, height: 64, alignment: .center)
}
}