我在窗体中使用了一个文本编辑器。
import SwiftUI
import PlaygroundSupport
struct ContentView: View {
@State var text = String()
var body: some View {
Form {
Section("Section") {
Toggle("Toggle", isOn: .constant(true))
LabeledContent("TextEditor") {
TextEditor(text: $text)
}
}
}
}
}
PlaygroundPage.current.setLiveView(ContentView())
这将呈现为如下形式:
由于TextEditor是一个多行输入字段,我希望它扩展到屏幕上剩余的可用空间,因此类似于
我可以通过在TextEditor中添加一个.frame(height:540)
修饰符来实现这一点,但是这对extend进行了硬编码,使其不是非常动态,因此只能在特定设备上工作。
所以问题是,如何以一种动态的方式来实现这一点,这种方式适用于所有潜在的设备(不同的iPhone,iPad,...)。
注意:这个问题类似于SwiftUI Texteditor in a form,但是这只解决了如何让它显示多行的问题,使用上面提到的.frame(height:X)
修饰符可以很容易地实现。
1条答案
按热度按时间jdgnovmf1#
我不认为这是最好的解决方案,虽然它的工作.如果你想要别的东西,尝试使用GeometryReader的动态高度值存储在CGFloat变量.(测试在iPhone 14 Pro,14 Pro Max和iPad 12.9英寸)
您也可以使用常量点,因为这些点反映不同的屏幕大小和分辨率:https://stackoverflow.com/a/73653966/14856451