Swift UI: Data Binding & Alert 練習

Source: Unplashed

可以花在這次作業的時間沒有很多,Peter 老師我對不起你…

內容:

  1. Alert 功能
  2. Slider 功能

1.Alert 功能

Alert 功能
@State private var showAlert = false
var body: some View {
Button(action: {
self.showAlert = true
}) {
VStack {
Image("Carol2019")
.renderingMode(.original)
Text("你還愛我嗎")
}
}.alert(isPresented: $showAlert) { () -> Alert in
let answer = ["愛", "不愛"].randomElement()!
return Alert(title: Text(answer))
}
}
}

2.Slider 功能

Binding & State 功能
struct EditPhotoView: View {

@State private var brightnessAmount: Double = 0
//加入代表圖片亮度的 state property brightnessAmount
@State private var selectDate = Date()
@State private var selectBlend = BlendMode.screen
let today = Date()
let startDate =
Calendar.current.date(byAdding: .year, value: -2,to: Date())!
var year: Int {Calendar.current.component(.year, from:selectDate)
}
let blendModes: [BlendMode] =
[.screen, .colorDodge, .colorBurn]
var body: some View {


GeometryReader {geometry in
VStack {
ZStack {
Image("pattern")
.resizable()
.scaledToFill()
.frame(width: geometry.size.width, height:
geometry.size.width / 4 * 3)
.clipped()
Image("Carol\(self.year)")
.resizable()
.scaledToFill()
.offset (y:50) .frame(width:geometry.size.width,height:geometry.size.width/4*3) .clipped()
.brightness(self.brightnessAmount)
.blendMode(self.selectBlend)

}
Form{BrightnessSlider(brightnessAmount:self.$brightnessAmount)
DatePicker("時間",selection:self.$selectDate,in:self.startDate...self.today,displayedComponents:.date)
}
}
}
}
(2) 特製的 App 畫面截圖。

Github:https://github.com/00757306/Growing-Story

--

--