对象在 SwiftUI 中未对齐 sheet
Object doesn't align in SwiftUI sheet
我在 Swift 游乐场中使用 sheet,我想将加号对齐到屏幕的左上角,但是当我尝试 运行 下面的代码时,加号没有对齐,它只是保留在 sheet 的中心。有办法解决这个问题吗?
免责声明: 我正在使用 SwiftUI 和 Swift Playground
struct SecondView : View {
@Environment(\.presentationMode) var presentationMode
@State var string: String
var body: some View {
VStack {
Button(action: {
self.presentationMode.wrappedValue.dismiss()
}, label: {
Image(systemName: "plus")
.resizable()
.frame(width: 30, height: 30, alignment: .leading)
})
}
}
}
在 SwiftUI 中,生成的父视图的边界通常由其中的视图决定。在这种情况下,您的整体视图受按钮(在 VStack 中)的约束,因此以任何方式对齐它都不会(或根本不会)在它的狭窄范围内移动太多。如果你在最外面的视图周围画一个 border/background,你就会明白我的意思。
一种解决方案是使用Spacer()
灵活扩展内部视图以占用额外可用的space。
var body: some View {
VStack {
HStack {
Button(...) // probably want to add some padding
Spacer()
}
Spacer()
}
}
或者在关闭按钮的情况下,考虑将其添加为叠加层。
以下文字:
var body: some View {
VStack {
VStack(spacing: 10) {
HStack {
Button(...) // probably want to add some padding
Spacer()
}
Text(...)
}
Spacer()
}
}
我在 Swift 游乐场中使用 sheet,我想将加号对齐到屏幕的左上角,但是当我尝试 运行 下面的代码时,加号没有对齐,它只是保留在 sheet 的中心。有办法解决这个问题吗?
免责声明: 我正在使用 SwiftUI 和 Swift Playground
struct SecondView : View {
@Environment(\.presentationMode) var presentationMode
@State var string: String
var body: some View {
VStack {
Button(action: {
self.presentationMode.wrappedValue.dismiss()
}, label: {
Image(systemName: "plus")
.resizable()
.frame(width: 30, height: 30, alignment: .leading)
})
}
}
}
在 SwiftUI 中,生成的父视图的边界通常由其中的视图决定。在这种情况下,您的整体视图受按钮(在 VStack 中)的约束,因此以任何方式对齐它都不会(或根本不会)在它的狭窄范围内移动太多。如果你在最外面的视图周围画一个 border/background,你就会明白我的意思。
一种解决方案是使用Spacer()
灵活扩展内部视图以占用额外可用的space。
var body: some View {
VStack {
HStack {
Button(...) // probably want to add some padding
Spacer()
}
Spacer()
}
}
或者在关闭按钮的情况下,考虑将其添加为叠加层。
以下文字:
var body: some View {
VStack {
VStack(spacing: 10) {
HStack {
Button(...) // probably want to add some padding
Spacer()
}
Text(...)
}
Spacer()
}
}