【正社員】還元率83%【フリーランス】マージン一律5万円で案件をご紹介させていただきます。 詳細はこちら

【SwiftUI】.edgesIgnoringSafeAreaのDeprecatedについて解説!ignoreSafeAreaを用いたコードに置換してみよう

ほりうち

こんにちは!Shoriと申します。この記事では、Swift 5.10およびXcode 15.4を使用して、.edgesIgnoringSafeAreaのdepcrecatedと新たに登場したignoreSafeAreaの処理について、サンプルコードを交えながら説明しております。

初心者の方でも分かりやすいように、サンプルコードに適宜説明を入れながら解説していくので、ぜひご覧ください。

この記事を読んで分かること…
・Deprecatedされる予定のedgesIgnoringSafeArea()について
・ignoreSafeArea()の使い方

目次

実行環境

・実行環境:SwiftUI+XCode
・Swift:5.10
・XCode:15.4
・サンプルコードの実行確認日:2024年12月27日(金)

edgesIgnoringSafeAreaとは?

概要

nonisolated
func edgesIgnoringSafeArea(_ edges: Edge.Set) -> some View
  • edgesIgnoringSafeArea は、引数のedgesの中で指定した画面の端(エッジ)に対して、セーフエリアの外までビューのエリアを拡張することの出来るメソッドです。
  • iOS 13.0–18.2にて使うことが出来ますが、将来的なアップデートには対応していませんので、後に紹介するignoresSafeAreaに置き換えていく必要があります。

サンプルコード

import SwiftUI

struct BlogView: View {
    var body: some View {
        Color(.red)
            .edgesIgnoringSafeArea(.all)
    }
}

#Preview {
    BlogView()
}

サンプルコードの説明

◾️行 1: SwiftUIをインポートしています。
◾️行 2: BlogViewというView型の構造体を定義します。
◾️行 4: 赤色のColorを宣言します。.edgesIgnoringSafeArea(.all)で四辺にピッタリくっつけます。

#PreView
・ここでBlogViewを初期化してあげることで、XCodeの右部分にリアルタイムプレビューを表示させることが可能となります。

出力

Color.redが画面全体に描画されている

しかし、上記のサンプルコードを入力しようとすると、.edgesIgnoringSafeArea(.all)のところで、

edgesIgnoringSafeArea will be deprecated in a future version of iOS: Use ignoreSafeArea(_:edges:_) instead.

というワーニングが表示されます。edgesIgnoringSafeAreaは将来的に廃止されるのでignoreSafeArea(_:edges:_)を代わりに使ってくださいと怒られてしまいます。

ignoreSafeArea()を使ってみよう

そこで、ignoreSafeAreaを使ってみましょう。

概要

nonisolated
func ignoresSafeArea(
    _ regions: SafeAreaRegions = .all,
    edges: Edge.Set = .all
) -> some View
  • ignoresSafeAreaは、ビューのセーフエリアを無視して指定した領域(regions)やエッジ(edges)に拡張するメソッドです。デフォルトではすべての領域とエッジが対象で、これを指定することでビューを画面全体に広げられます。
  • こちらの修飾子を使うことで、edgesIgnoringSafeArea()では単純に上下左右方向にしか領域を広げられませんでしたが、regionsを用いてどのエリアに対してsafeAreaの拡張が対応できるかを指定することが出来るようになります。

サンプルコード

struct BlogView: View {
    var body: some View {
        Color(.cyan)
            .ignoresSafeArea()
    }
}

#Preview {
    BlogView()
}

サンプルコードの説明

◾️行 1: SwiftUIをインポートしています。
◾️行 2: BlogViewというView型の構造体を定義します。
◾️行 4: 水色のColorを宣言します。.ignoresSafeArea()で四辺にピッタリくっつけます。.edgesIgnoringSafeArea(.all)では(.all)を引数に取る必要がありましたが、.ignoresSafeArea()では指定しなくてもデフォルトで四辺にピッタリくっつきます。

#PreView
・ここでBlogViewを初期化してあげることで、XCodeの右部分にリアルタイムプレビューを表示させることが可能となります。

出力

Color.cyanが画面全体に描画されている

まとめ

いかがでしたでしょうか?

この記事では、.edgesIgnoringSafeAreaの代わりに.ignoresSafeArea()を指定して、deprecatedに対応するための解説を行いました。

ではまた、次の記事でお会いしましょう!

ほりうち

この記事があなたのスキルアップに役立ったなら、次のキャリアステップを踏み出す絶好の機会かもしれません。エンジニアとしてのさらなる成長と挑戦を求めるなら、未経験からエンジニア転職なら【Tech Stars Agent】をオススメします!

参考記事

https://developer.apple.com/documentation/swiftui/view/edgesignoringsafearea(_:)

https://developer.apple.com/documentation/swiftui/view/ignoressafearea(_:edges:)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次