Проблема заключается в том, что ваши упаковывающие представления (два ZStack
по умолчанию) будут занимать только пространство их содержимого, а это только кнопка. Если вы добавите рамку для расширения оболочки, вы увидите, что выравнивание работает так, как вы ожидаете.
var body: some View {
ZStack {
ZStack {
Button(action: { self.show.toggle() }) {
HStack {
Spacer()
Image(systemName: "list.dash")
.foregroundColor(.black)
}
.padding(.trailing, 20)
.frame(width: 90, height: 60)
.background(Color.white)
.cornerRadius(30)
.shadow(color: Color.gray, radius: 10, x: 0, y: 10)
}
Spacer()
}
.frame(
maxWidth: .infinity,
maxHeight: .infinity,
alignment: Alignment.topLeading
)
}
}
