こんにちは!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の右部分にリアルタイムプレビューを表示させることが可能となります。
出力
しかし、上記のサンプルコードを入力しようとすると、.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の右部分にリアルタイムプレビューを表示させることが可能となります。
出力
まとめ
いかがでしたでしょうか?
この記事では、.edgesIgnoringSafeArea
の代わりに.ignoresSafeArea()
を指定して、deprecatedに対応するための解説を行いました。
ではまた、次の記事でお会いしましょう!
この記事があなたのスキルアップに役立ったなら、次のキャリアステップを踏み出す絶好の機会かもしれません。エンジニアとしてのさらなる成長と挑戦を求めるなら、未経験からエンジニア転職なら【Tech Stars Agent】をオススメします!
参考記事
https://developer.apple.com/documentation/swiftui/view/edgesignoringsafearea(_:)
https://developer.apple.com/documentation/swiftui/view/ignoressafearea(_:edges:)
コメント