我想在我的ForEach中添加一些TextEditor,并且我在下面编写了这个示例代码!正如您可以在图像中看到的那样,TextEditor就像一个贪婪的视图,占据了所有可用的空间!对我来说,这有很多缺点!
如果我限制高度为自定义值,那么我将无法看到TextEditor中的所有字符串和字符串行,并且我必须上下滚动以查看其他行,这不是我的设计!
我的目标是TextEditor根据需要占用空间,如果我输入新的字符串行,则可以增加高度;如果我删除字符串行,则可以缩小高度至少为1行!
我想知道如何实现这一点?
如果我限制高度为自定义值,那么我将无法看到TextEditor中的所有字符串和字符串行,并且我必须上下滚动以查看其他行,这不是我的设计!
我的目标是TextEditor根据需要占用空间,如果我输入新的字符串行,则可以增加高度;如果我删除字符串行,则可以缩小高度至少为1行!
我想知道如何实现这一点?
struct ContentView: View {
@StateObject var textEditorReferenceType: TextEditorReferenceType = TextEditorReferenceType()
var body: some View {
Text("TextEditorView").bold().padding()
VStack {
ForEach(textEditorReferenceType.arrayOfString.indices, id: \.self, content: { index in
TextEditorView(string: $textEditorReferenceType.arrayOfString[index])
})
}
.padding()
}
}
struct TextEditorView: View {
@Binding var string: String
var body: some View {
TextEditor(text: $string)
.cornerRadius(10.0)
.shadow(radius: 1.0)
}
}
class TextEditorReferenceType: ObservableObject {
@Published var arrayOfString: [String] = ["Hello, World!", "Hello, World!", "Hello, World!"]
}