Skip to main content

SwiftUIでEnvironmentを使おう

tkglingLess than 1 minuteProgrammingSwift

EnvironmentValues

Apple のドキュメントopen in new windowにたくさん載っているのでこれを学んでいきましょう。

locale

現在のロケールの環境変数。

timeZone

タイムゾーンを取得する。Swift ではTimeZone.currentで取得することもできるが、環境変数を使うほうが良さそうである。

lineLimit

テキストで折返しをするかどうかの環境変数。1 だと折り返さず三点リーダで省略される。

lineSpacing

multilineTextAlignment

複数行に渡るテキストをどこで揃えるかどうか。

minimumScaleFactor

テキストにおける指定フォントサイズに対して何%まで小さくすることを認めるかの環境変数。

例えば、0.5 としておいてフォントサイズを 20 と指定すればデバイスや表示したい文字の長さによってフォントサイズを 10 まで小さくする。

sizeCategory

truncationMode

textCase

font

デフォルトのフォントを指定。

editMode

編集機能を有効化しているかどうかの環境変数

isEnabled

ユーザの操作を受け付けるかどうかの環境変数。

presentationMode

現在のビューが別のビューから呼ばれているかどうかの環境変数。

// 定義
@Environment(\.presentationMode) var present: Bool

// 現在のビューを閉じる
present.wrappedValue.dismiss()

このようにすれば画面を閉じることができる、便利。

imageScale

画像のサイズを指定できる。smallmediumlargeの三つがあった気がするが largeでも全然大きくなくて困る。

extraLargeみたいな Enum が欲しい、実装方法ないのかな。

Last update:
Contributors: tkgstrator