2
4

【Swift】摂氏と華氏を切り替える

Posted at

はじめに

摂氏・華氏の切り替えを実装しようとするとめんどそうです。
そこで、用意されているMeasurementを使用します。
これは色々な単位の計算をコネコネしてくれてめっちゃ便利です。

今回はその例で摂氏・華氏を実装してみようと思います。
私たち日本人がよく触れる温度の単位は摂氏です。

摂氏20℃は、華氏何°Fでしょう?と言われても全然わかりません。

なのでこちらのツールを使用させてもらいます。

スクリーンショット 2024-02-07 22.02.10.png

摂氏20℃は、華氏68°Fらしいです。

ではiOSではどのように実装したらこの変換ができるでしょうか
実装してみます。

サンプルアプリ

いい感じですね。
四捨五入すれば、先ほど使用したツールと同じ結果になります。
Simulator Screen Recording - iPhone 15 - 2024-02-07 at 22.01.18.gif

実装

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便利ですね
他の単位でも使ってみたいです

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4