DetailView

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())
        
    }
}
タイトルとURLをコピーしました