Swift UI: Data Binding & Alert 練習
Published in
2 min readDec 14, 2019
可以花在這次作業的時間沒有很多,Peter 老師我對不起你…
內容:
- Alert 功能
- Slider 功能
1.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 功能
struct EditPhotoView: View {
@State private var brightnessAmount: Double = 0
//加入代表圖片亮度的 state property brightnessAmount
@State private var selectDate = Date()
@State private var selectBlend = BlendMode.screenlet 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)
}
}
}
}