【SwiftUI】frameモディファイアは理解するのが難しいから事実をまとめていこう

SwiftUI

はじめに

今回はframeモディファイアについてです。

いまいちピンとこないのでわかったことをまとめた記事です。

frameモディファイアの種類

・パターン1

func frame(width: CGFloat? = nil, height: CGFloat? = nil, alignment: Alignment = .center) -> some View

・パターン2

func frame(minWidth: CGFloat? = nil, idealWidth: CGFloat? = nil, maxWidth: CGFloat? = nil, minHeight: CGFloat? = nil, idealHeight: CGFloat? = nil, maxHeight: CGFloat? = nil, alignment: Alignment = .center) -> some View

Alignmentは center がデフォルト

.centerがデフォルト引数として設定されています。

指定なしの場合は縦方向、横方向ともに中央になります

.infinityは maxWidth と maxHeightでしか使えない

.infinityは画面全体幅という意味ではないことに注意

広げることができる最大サイズにするというものです。

なので親ビューが固定サイズであった場合はそれ以上では大きくなりません

固定サイズというのは、今回でいうパターン1で作られたビューが親になっている場合のことなります。

minWidthとminHeightの使いどころがわかりません

これを使ってる記事がなさすぎてどう参考にしたらいいかが分からない。

ということで使わなくていいのではと思っています。