MakitSystem

SwiftUI マージンの指定方法、Viewのwidthを端末幅に合わせる方法

マージンの指定方法

Spacerのframeを指定する事によって、ViewとViewの間を任意の間隔にあけることができます。 水平方向にマージンを取る場合は、widthを指定し、垂直方向にマージンを取る場合は、heightを指定します。

Spacer().frame(width: 50, height: 100)

HStackで間隔をViewごとに分けたい場合は、下記のようにSpacerのframeをそれぞれ指定します。

import SwiftUI

struct ContentView: View {
    var body: some View {
        HStack(spacing: 0) {
            Button("Button1") {
            }
            
            Spacer().frame(width: 50)
            
            Button("Button2") {
            }
            
            Spacer().frame(width: 100)
            
            Button("Button3") {
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

Viewのwidthを端末幅に合わせる方法

Viewのwidthを端末幅にあわせるには、maxWidthを.infinityに指定すると表示できる最大幅になります。

heightの場合も同様にmaxHeightを.infinityに指定すると縦方向に最大限広がります。

import SwiftUI

struct ContentView: View {
    var body: some View {
        HStack(spacing: 0) {
            Text("hello")
        }.frame(maxWidth: .infinity)
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}