(四)程式碼

import SwiftUIstruct ContentView: View {@State private var showSecondPage = false@State public var bdate = Date()@State private var red = Double()@State private var green = Double()@State private var blue = Double()@State private var bgColor = Color.white@State private var gender = 0@State private var name: String = ""var sex = ["男","女"]var body: some View {VStack {Text("生日卡").labelStyle(DefaultLabelStyle()).multilineTextAlignment(.leading).font(.title).foregroundColor(Color(red: red, green: green, blue: blue))Image("bdatecard").resizable().scaledToFit()DisclosureGroup(content:{DatePicker("你的生日日期:",selection: $bdate, displayedComponents: .date).datePickerStyle(WheelDatePickerStyle()).foregroundColor(Color(red: red, green: green, blue: blue))},label:{Label("你的生日日期:", systemImage: "").foregroundColor(Color(red: red, green: green, blue: blue))Text(bdate,style: .date).foregroundColor(Color(red: red, green: green, blue: blue))})VStack{Picker(selection: $gender, label: Text("性別")) {Text(sex[0]).tag(0)Text(sex[1]).tag(1)}.pickerStyle(SegmentedPickerStyle())TextField("請輸入名字",text: $name)}Form{Text("選擇你的字體的顏色").foregroundColor(Color(red: red, green: green, blue: blue))HStack{Text("Red  ").foregroundColor(.red)Slider(value: $red, in: 0...1).accentColor(.red)}HStack{Text("Green").foregroundColor(.green)Slider(value: $green, in: 0...1).accentColor(.green)}HStack{Text("Blue ").foregroundColor(.blue)Slider(value: $blue, in: 0...1).accentColor(.blue)}}ColorPicker("Set the background color",selection: $bgColor)Spacer()Button("OK!") {showSecondPage = true}.sheet(isPresented: $showSecondPage) {secondview(showSecondPage: self.$showSecondPage,bdate:self.$bdate, red: self.$red,green: self.$green, blue: self.$blue, name: self.$name)}}.background(bgColor)}}

secondview程式碼

import SwiftUIstruct secondview: View{@Binding var showSecondPage: Bool@Binding var bdate:Date@Binding var red: Double@Binding var green: Double@Binding var blue: Double@Binding var name: String@State private var showAlert = falsevar number = Int.random(in:0...3)var body: some View{VStack{Text(self.bdate,style: .date)let num = numberText("\(name)")if(num == 0){Text("  長長的距離,長長的線,長長的時間抹不斷,今天是你的生日,遠方的我一直在惦念著你,祝你生日快樂!").foregroundColor(Color(red: red, green: green, blue: blue))}else if(num == 1){Text("今天有了你世界更精彩,今天有了你星空更燦爛,今天因為你人間更溫暖,今天因為你我覺得更幸福!").foregroundColor(Color(red: red, green: green, blue: blue))}else{Text(" 今夜,驚悉你的生日。窗外的風帶上我的祝福,祝愿你在新的一年裡心想事成花容月貌而且又乖又可愛").foregroundColor(Color(red: red, green: green, blue: blue))}Button("按讚嗎?", action:{showAlert = trueshowSecondPage = false}).alert(isPresented: $showAlert) { () -> Alert inlet answer = ["讚", "不讚"].randomElement()!return Alert(title: Text(answer))}}}}

(五)封面圖片

--

--