Skip to content

Instantly share code, notes, and snippets.

@PetreVane
Created June 20, 2020 19:58
Show Gist options
  • Save PetreVane/e2dd9c1dff968e767b53541a5178c6d0 to your computer and use it in GitHub Desktop.
Save PetreVane/e2dd9c1dff968e767b53541a5178c6d0 to your computer and use it in GitHub Desktop.
Adding a Toggle and a DatePicker in SwiftUI
import SwiftUI
struct ContentView: View {
private var isActivatedMessage: String {
return "CatNip mode is " + (isActivated ? "Activated" : "Deactivated")
}
private var dateFormater: DateFormatter {
let dateFormater = DateFormatter()
dateFormater.dateStyle = .medium
return dateFormater
}
@State private var isActivated = false
@State private var pickedDate = Date()
var body: some View {
VStack {
// Normal toggle
Toggle(" CatNip mode ", isOn: $isActivated)
Text(isActivatedMessage)
.foregroundColor(isActivated ? .red : .green)
.fontWeight(isActivated ? .heavy : .regular)
// Toggle with a VStack in it
Toggle(isOn: $isActivated) {
VStack {
Image("CatNip")
.resizable()
.frame(width: 100, height: 100, alignment: .center)
Text(isActivatedMessage)
}
}
// Normal date picker
DatePicker(selection: $pickedDate, displayedComponents: [.date]) {
Text("Select date")
}
// Date picker with bounds
DatePicker(selection: $pickedDate, in: ClosedRange(uncheckedBounds: (lower: Date(), upper: Date(timeIntervalSinceNow: 19000))), displayedComponents: [.date]) {
Text("Select date")
}
Text("You've selected \(dateFormater.string(from: pickedDate))")
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment