为啥 SwiftUI“表单”会导致我的按钮转到屏幕底部?
Posted
技术标签:
【中文标题】为啥 SwiftUI“表单”会导致我的按钮转到屏幕底部?【英文标题】:Why does the SwiftUI "Form" cause my button to go to the bottom of the screen?为什么 SwiftUI“表单”会导致我的按钮转到屏幕底部? 【发布时间】:2021-05-11 02:19:55 【问题描述】:我想创建一个视图,它有一个下面有一个按钮的表单。如果我包含一个表单和一个按钮,则该按钮会转到屏幕底部。
没有表单元素
带有表单元素
这只是一个 SwiftUI 错误吗?还是我做错了什么?
//
// TestFile.swift
// searchparty
//
// Created by Me
//
import SwiftUI
struct TestFile: View
var body: some View
VStack
Form
Text("Hello, World!")
Button("Button")
print("Button tapped!")
struct TestFile_Previews: PreviewProvider
static var previews: some View
TestFile()
【问题讨论】:
预期行为。 Form 是一个 ScrollView 并占用所有可用的垂直空间。 感谢您的回复。如果这是预期的行为,那么我应该如何实现我正在寻找的结果?如果我将按钮放在表单内,按钮看起来很奇怪,因为它被白色圆角正方形包围。 不幸的是,我认为这是目前 SwiftUI 的一个限制。也许其他人会有解决方法。 我现在不在电脑前,但您可以尝试将按钮设置为空白部分的页脚 成功了!谢谢jdpdx!看起来还是有点 hacky,但它会做! 【参考方案1】:一个空的Section
和一个footer
可以完成这项工作,尽管您需要明确设置字体,否则footer
将根据表单页脚环境更改它:
struct ContentView: View
var body: some View
Form
Text("Entry")
Section(footer:
HStack
Spacer()
Button(action: )
Text("My button")
.font(.system(.body))
Spacer()
)
EmptyView()
【讨论】:
以上是关于为啥 SwiftUI“表单”会导致我的按钮转到屏幕底部?的主要内容,如果未能解决你的问题,请参考以下文章
为啥@FocusState 会导致 SwiftUI 预览崩溃