【Swift】VStackを利用せずにoverlayで配置する

VStackにボタンを配置しているけど、右上のあたりに設定ボタンを出したいと思った時にVStack内に配置してしまうとレイアウトが崩れてしまう問題がありました。

overlayを利用する

Swift
VStack {
  // 省略
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.contentShape(Rectangle())
.overlay(alignment: .topTrailing) {
  Button("ボタン")
}

画面幅にVStackを広げた上で.overlayで相対的に配置場所を指定することができます!