Test

 avatar
unknown
swift
6 months ago
4.5 kB
2
Indexable
import SwiftUI
//            HStack {
//                Button("Vanilla"){
//                    cakeColor = .orange
//                }
//                .padding()
//                .background(.orange)
//                .foregroundStyle(.white)
//                Button("Cocoa"){
//                    cakeColor = .brown
//                }
//                .padding()
//                .background(.brown)
//                .foregroundStyle(.white)
//                Button("Berry"){
//                    cakeColor = .pink
//                }
//                .padding()
//                .background(.pink)
//                .foregroundStyle(.white)
//            }
//            .padding()
struct Cake: Identifiable {
    var id = UUID()
    var flavor: Color
    var size: Double
    var addCherry: Bool
    var sweetness: Double
}

struct ContentView: View {
    @State var flavor: Color = Color.mint 
    @State var size: Double = 1.0
    @State var addCherry: Bool = false
    @State var sweetness: Double = 50.0
    @State var menu: [Cake] = []
    var body: some View {
        NavigationView {
            VStack {
                ZStack {
                    Image(systemName: "birthday.cake.fill")
                        .resizable()
                        .frame(width: 150, height: 150)
//                        .padding(.bottom,50)
                        .foregroundStyle(flavor)
                        .scaleEffect(CGSize(width: size, height: size))
                        .opacity(sweetness / 100)
                        .animation(.easeIn, value: flavor)
                        .animation(.bouncy, value: size)
                        .animation(.easeIn, value: sweetness)
                        .padding(.top,50)
                    if addCherry {
                        Text("🍒")
                            .font(.system(size: 60))
                    }
                }
                HStack{ 
                    Text("Flavor")
                    Spacer()
                    Picker("Choose Flavor", selection: $flavor){
                        Text("Vanilla").tag(Color.yellow)
                        Text("Chocolate").tag(Color.brown)
                        Text("Berry").tag(Color.pink)
                    }
                    .tint(.red)
                }
                .padding()
                HStack{ 
                    Text("Size")
                    Spacer()
                    Picker("Choose Size", selection: $size){
                        Text("Small").tag(0.5)
                        Text("Medium").tag(1.0)
                        Text("Large").tag(1.3)
                    }
                    .tint(.red)
                }
                .padding()
                Toggle("Add Cherry", isOn: $addCherry)
                    .tint(.red)
                    .padding()
                Text("Sweetness: \(sweetness)")
                Slider(value: $sweetness, in: 20...100)
                    .animation(.easeIn, value: sweetness)
                    .tint(.red)
                HStack {
                    Button("Random", systemImage: "arrowshape.forward.circle.fill"){
                        flavor = [Color.yellow,Color.brown,Color.pink].randomElement()!
                        size = [0.5,1.0,1.5].randomElement()!
                        addCherry = Bool.random()
                        sweetness = Double.random(in: 20...100)
                    }
                    Button("Create", systemImage: "pencil.circle.fill"){
                        let cake =  Cake(flavor: flavor, size: size, addCherry: addCherry, sweetness: sweetness)
                        menu.append(cake)
                    }
                    .padding()
                    .background(.pink)
                    .foregroundStyle(.white)
                    .cornerRadius(12)
                    
                    NavigationLink{
                        MenuView(menu: menu)
                    }label: {
                        Text("Next Page")
                    }
                }
                
            }
            .navigationTitle("🧁 My Bakery 🍒")
        }
    }
}
struct MenuView: View {
    
    var menu: [Cake]
    
    var body: some View{
        List(menu) { item in
            Image(systemName: "birthday.cake.fill")
                .resizable()
                .frame(width: 150,height: 150)
                .foregroundStyle(item.flavor)
            
        }
    }
}

#Preview {
    ContentView()
}
Editor is loading...
Leave a Comment