SwiftUI - Как TextField может динамически увеличивать свою высоту в зависимости от его содержимого? - PullRequest
1 голос
/ 14 февраля 2020

Я пытаюсь создать вид "чата", используя SwiftUI, и я хотел бы знать, как это сделать, чтобы динамически увеличивать высоту TextField, где пользователи должны писать свои сообщения.

I определили minHeight, ожидая, что TextField может увеличить свою высоту на основе своего внутреннего содержимого c.

Мой текущий код представления:

struct MessageSenderView: View {
    @Binding var userTextInput: String

    var body: some View {
        VStack {
            HStack(alignment: .center, spacing: 17) {
                senderPlusImage()
                ZStack {
                    Capsule()
                        .fill(Color("messagesBankDetailColor"))
                        .frame(minHeight: 34, alignment: .bottom)
                    HStack(spacing: 15){
                        Spacer()
                        ZStack(alignment: .leading) {
                            if userTextInput.isEmpty { Text(Constants.Login.Text.userPlaceHolder).foregroundColor(Color.white) }
                            TextField(" ", text: $userTextInput)
                                .multilineTextAlignment(.leading)
                                .frame(minHeight: CGFloat(34))
                                .foregroundColor(Color.white)
                                .background(Color("messagesBankDetailColor"))
                                .onAppear { self.userTextInput = "" }
                        }
                        arrowImage()
                    }
                    .frame(minHeight: CGFloat(34))
                    .padding(.trailing, 16)
                    .layoutPriority(100)
                }
            }
            .padding(16)
        }
        .background(Color("mainBackgroundColor"))
    }
}

И вот как это выглядит:

enter image description here

Спасибо !!!!

1 Ответ

2 голосов
/ 14 февраля 2020

Для этого вы должны использовать UITextfield с протоколом UIViewRepresentable. Может быть, это руководство поможет вам: Dynami c TextField SwiftUI

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...