はじめに
摂氏・華氏の切り替えを実装しようとするとめんどそうです。
そこで、用意されているMeasurementを使用します。
これは色々な単位の計算をコネコネしてくれてめっちゃ便利です。
今回はその例で摂氏・華氏を実装してみようと思います。
私たち日本人がよく触れる温度の単位は摂氏です。
摂氏20℃は、華氏何°Fでしょう?と言われても全然わかりません。
なのでこちらのツールを使用させてもらいます。
摂氏20℃は、華氏68°Fらしいです。
ではiOSではどのように実装したらこの変換ができるでしょうか
実装してみます。
サンプルアプリ
いい感じですね。
四捨五入すれば、先ほど使用したツールと同じ結果になります。
実装
import SwiftUI
struct ContentView: View {
// 現在表示している温度単位
@State private var unit: UnitTemperature = .celsius
// 摂氏20℃(これを摂氏や華氏に切り替えられるようにしたい)
private var temperature = Measurement(value: 20.0, unit: UnitTemperature.celsius)
var body: some View {
VStack {
Picker("温度単位", selection: $unit) {
Text("摂氏").tag(UnitTemperature.celsius)
Text("華氏").tag(UnitTemperature.fahrenheit)
}
Text(temperature.converted(to: unit).description)
}
}
}
おわり
Measurement
便利ですね
他の単位でも使ってみたいです