@State var volume: Float = 0.0 var body: some View { HStack { Text("\(volume)").frame(width: 100) HStack { Image(systemName: "speaker.slash").imageScale(.large) Slider(value: $volume) Image(systemName: "speaker.3").imageScale(.large) } .frame(width: 200) } }
フォーマットする関数を作る
struct ContentView: View { @State var volume: Double = 0.0 var body: some View { HStack { Text("\(format(volume))").frame(width: 100) HStack { Image(systemName: "speaker.slash").imageScale(.large) Slider(value: $volume) Image(systemName: "speaker.3").imageScale(.large) } .frame(width: 200) } } } func format(_ num:Double) -> String { let result = String(round(num*100)/100) return result }
スライダーの値の範囲を設定
L .foregroundColor(Color(red: R/255, green: G/255, blue: B/255, opacity: A))で色を指定している
@State var R:Double = 0 @State var G:Double = 0 @State var B:Double = 0 @State var A:Double = 1 var body: some View { VStack(alignment: .center){ ZStack { Image(systemName: "ladybug") .scaleEffect(3) Circle() .frame(width:100, height: 100) .padding() .foregroundColor( Color(red: R/255, green: G/255, blue: B/255, opacity: A)) } HStack { Circle() .foregroundColor(.red) .frame(width: 20, height: 20) Text(String(Int(R))).frame(width: 40) Slider(value: $R, in: 0...255).frame(width: 200) } HStack { Circle() .foregroundColor(.green) .frame(width: 20, height: 20) Text(String(Int(G))).frame(width: 40) Slider(value: $G, in: 0...255).frame(width: 200) } HStack { Circle() .foregroundColor(.blue) .frame(width: 20, height: 20) Text(String(Int(B))).frame(width: 40) Slider(value: $B, in: 0...255).frame(width: 200) } HStack { Circle() .stroke(lineWidth: 2) .foregroundColor(.blue) .frame(width: 18, height: 18) Text(String(round(A*10)/10)).frame(width: 40) Slider(value: $A).frame(width: 200) } } }
これは凄い
### よく使う便利な関数
let price = 3520 * 1.24 var ans:Double ans = floor(price) //切り捨て ans = ceil(price) //切り上げ ans = round(price) //四捨五入 // 任意の桁で計算 ans = floor(price/10)*10 //切り捨て ans = ceil(price/10)*10 //切り上げ ans = round(price/10)*10 //四捨五入 var ans: Int ans = max(5, 9) ans = min(5, 9) var v1 = -10, v2 = 20 v1 = min(max(v1, 0), 10) v2 = min(max(v2, 0), 10) let a = 16.5 let b = 18.0 let ans = abs(a - b)
ランナーズハイ状態になってきた