ContentView.swift
//
// 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()
}
}
