DetailView
2023.08.29
import SwiftUI
struct DetailView: View{
@EnvironmentObject var mbData: MBData
@State var MBkosu: Double = 0
let MBpar = 47
let MBtanka = 3
@EnvironmentObject var ncData: NCData
@State var NCkosu: Double = 0
let NCpar = 147
let NCtanka = 12
@EnvironmentObject var skData: SKData
@State var SKkosu: Double = 0
let SKpar = 33
let SKtanka = 21
@EnvironmentObject var idData: IDData
@State var IDkosu: Double = 0
let IDpar = 117
let IDtanka = 8
@EnvironmentObject var swData: SWData
@State var SWkosu: Double = 0
let SWpar = 321
let SWtanka = 30
@EnvironmentObject var tvData: TVData
@State var TVkosu: Double = 0
let TVpar = 175
let TVtanka = 16
@EnvironmentObject var dnData: DNData
@State var DNkosu: Double = 0
let DNpar = 225
let DNtanka = 13
@EnvironmentObject var jaData: JAData
@State var JAkosu: Double = 0
let JApar = 345
let JAtanka = 22
@EnvironmentObject var dgData: DGData
@State var DGkosu: Double = 0
let DGpar = 88
let DGtanka = 5
@EnvironmentObject var acData: ACData
@State var ACkosu: Double = 0
let ACpar = 268
let ACtanka = 16
@State var soryoshosuDataCircle: CGFloat = 0.0
var body: some View{
ZStack{
Image("RECO2")
.resizable(resizingMode: .stretch)
.aspectRatio(contentMode: .fill)
.clipped()
VStack{
let soryo = (mbData.MBkosu * MBpar) + (ncData.NCkosu * NCpar) + (skData.SKkosu * SKpar) + (idData.IDkosu * IDpar) + (swData.SWkosu * SWpar) + (tvData.TVkosu * TVpar) + (dnData.DNkosu * DNpar) + (jaData.JAkosu * JApar) + (dgData.DGkosu * DGpar) + (acData.ACkosu * ACpar);
let soryoshosu : Float = Float(soryo)
let sogaku = (mbData.MBkosu * MBtanka + ncData.NCkosu * NCtanka + skData.SKkosu * SKtanka + idData.IDkosu * IDtanka + swData.SWkosu * SWtanka + tvData.TVkosu * TVtanka + dnData.DNkosu * DNtanka + jaData.JAkosu * JAtanka + dgData.DGkosu * DGtanka + acData.ACkosu * ACtanka);
Spacer()
.frame(width: 0.0, height: 20.0)
Text("日本では、2030年までに約6億1800万tの温室効果ガスの削減を目指し\n1日,一人当たり1kg(=1000g)の削減が目標とされています。")
.font(.caption)
.padding()
Text("これまでに削減できたCO2")
.font(.callout)
.foregroundColor(.blue)
.padding()
Text("約\(soryo)g")
.font(.largeTitle)
.multilineTextAlignment(.trailing)
.padding(.leading, 20)
.foregroundColor(.blue)
Spacer()
.frame(width: 0.0, height: 40.0)
Text("66日間の目標のうち(1人1日1kgとして)")
.font(.callout)
.foregroundColor(.green)
Text("(66日は習慣化するまでに必要な平均日数)")
.font(.footnote)
.foregroundColor(.green)
.padding(.bottom)
let soryoshosuData = soryoshosu/66000*100
let soryoshosuDataRound = round(soryoshosuData*100)/100
ZStack{
Circle()
.stroke(lineWidth:30.0)
.opacity(0.4)
.foregroundColor(Color.orange)
Circle()
.trim(from:0.0, to:CGFloat(soryoshosuData/100))
.stroke(Color.green, lineWidth:30.0)
.rotationEffect(.degrees(-90))
.overlay(Text("\(soryoshosuDataRound, specifier: "%.2f")%")
.foregroundColor(.green)
.font(.title)
)
}.frame(minHeight:10)
.padding(.all,20)
Text("これまでに節約できたお金")
.font(.callout)
.foregroundColor(.indigo)
.padding()
Text("約\(sogaku)円")
.font(.largeTitle)
.multilineTextAlignment(.trailing)
.padding([.leading, .bottom],20)
.foregroundColor(.indigo)
}
}
}
}
struct DetailView_Previews: PreviewProvider {
static var previews: some View {
DetailView()
.environmentObject(MBData())
.environmentObject(NCData())
.environmentObject(SKData())
.environmentObject(IDData())
.environmentObject(SWData())
.environmentObject(TVData())
.environmentObject(DNData())
.environmentObject(JAData())
.environmentObject(DGData())
.environmentObject(ACData())
}
}