1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[SwiftUI] iOSバージョンごとにSF Symbolsを変更する方法

Last updated at Posted at 2024-10-06

はじめに

iOS 18から新しいSF Symbolsが登場しましたが、アップデートしていない端末ではアイコンが何も表示されない問題に直面しました。ここでは、iOSバージョンごとに異なるSF Symbolsを表示する方法を紹介します。実装自体かなり簡単なので、役に立てていただければと思います。

実装

import SwiftUI

struct ContentView: View {
    var body: some View {
        // iOSのバージョンによって使用するSF Symbolsを変更
        if #available(iOS 18, *) {
            // iOS 18以上の場合
            Image(systemName: "numbers")
                .font(.largeTitle)
        } else {
            // iOS 18未満の場合
            Image(systemName: "arrow.2.circlepath")
                .font(.largeTitle)
        }
    }
}
#Preview {
    ContentView()
}

if #available(iOS 18, *) { ... } else { ... }:
この条件分岐は、現在のデバイスがiOS 18以上かどうかを確認します。iOS 18以上の場合は、新しいSF Symbols「numbers」を使用し、そうでない場合は古いシンボル「arrow.2.circlepath」を表示します。

シミュレーターで確認

シミュレーターで異なるiOSバージョン、iOS 18iOS 17.4でのアイコンの表示を比較します。

iOS 18

iOS 17.4

まとめ

この実装により、iOS 18未満の端末でも別のアイコンを表示することができます。

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?