TextEditor придерживается minHeight в SwiftUI - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь создать представление с недавно введенным TextEditor. Идея состоит в том, что у меня есть некоторый контент вверху (синяя рамка), затем ScrollView с TextEditor и переменным номером Text под ним (красная рамка).

The TextEditor (желтая рамка) вид должен иметь минимальную высоту, но он должен занимать все доступное пространство, если за ним не так много Text просмотров - чего в настоящее время нет ...

enter image description here

import SwiftUI

struct ScrollViewWithTextEditor: View {
    
    var comments = ["Foo", "Bar", "Buzz"]
    
    var loremIpsum = """
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
    """
    
    var body: some View {
        VStack {
            Group {
                Text("Some Content above")
            }
            .frame(maxWidth: .infinity)
            .border(Color.blue, width: 3.0)
            .padding(.all, 10)

            ScrollView {
                ScrollView {
                    TextEditor(text: .constant(loremIpsum))
                        .frame(minHeight: 200.0)
                }
                .frame(minHeight: 200.0)
                .border(Color.yellow, width: 3.0)
                .cornerRadius(3.0)
                .padding(.all, 10.0)
                
                VStack {
                    ForEach(comments, id: \.self) { comment in
                        Text(comment)
                    }
                    .padding(.all, 10)
                    .frame(maxWidth: .infinity, alignment: .leading)
                    .border(Color.gray, width: 1)
                    .cornerRadius(3.0)
                    .padding(.all, 10)
                }
                
            }
            .frame(minHeight: 200.0)
            .border(Color.red, width: 3)
            .padding(.all, 3)
        }
    }
}

struct ScrollViewWithTextEditor_Previews: PreviewProvider {
    static var previews: some View {
        ScrollViewWithTextEditor()
    }
}

Есть предложения, как решить эту проблему?

...