ContentView.swift
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | // // ContentView.swift // swiftuidev // // Created by Cairocoders // import SwiftUI struct ContentView: View { @State var scale: CGFloat = 1.0 @State private var celsius: Double = 0 @State var sliderValue: Double = 0 @State private var value: Float = 0.0 @State var progress: Float = 0.5 var body: some View { VStack { HStack { VStack { Slider(value: $scale, in: 1.0...10.0, step: 0.1) .padding(.bottom, 100) .frame(width: 200, height: 10, alignment: Alignment.center) Text( "Slider Value: \(scale)" ) .font(.headline) .foregroundColor(Color.red) .multilineTextAlignment(TextAlignment.center) .background(Color.yellow) } } .padding([.leading, .bottom]) //Slide read values from it HStack { VStack { Slider(value: $celsius, in: -100...100) Text( "\(celsius, specifier: " %.1f ") Celsius is \(celsius * 9 / 5 + 32, specifier: " %.1f ") Fahrenheit" ) } } .padding([.leading, .bottom]) HStack { VStack { HStack { Image(systemName: "minus" ) //Slider(value: $sliderValue, in: 0...20) Slider(value: $sliderValue, in: 0...20, step: 1) //slider’s step (increment) value .padding() .accentColor(Color.green) //Change color of the slider //.border(Color.green, width: 2) //border around the slider //.overlay( // RoundedRectangle(cornerRadius: 15.0) // .stroke(lineWidth: 2.0) // .foregroundColor(Color.green) //) Image(systemName: "plus" ) } .foregroundColor(Color.green) Text( "Current slider value: \(sliderValue, specifier: " %.2f ")" ) } }.padding() //call a function when a slider changes HStack { VStack { Slider(value: Binding( get: { self.value }, set: {(newValue) in self.value = newValue self.doSomething() } )) Slider(value: Binding(get: { self.progress }, set: { (newVal) in self.progress = newVal self.sliderChanged() })) .padding(.all) Text(String(progress)) } } } } func doSomething(){ print( "\(value)" ) } func sliderChanged() { print( "Slider value changed to \(progress)" ) } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } } |