Выравнивание высоты просмотров в SwiftUI - PullRequest
1 голос
/ 23 апреля 2020

У меня есть представление SwiftUI, представляющее собой HStack из двух представлений: 1. Простое представление Text, которое действует как своего рода метка и всегда представляет собой одну строку 2. Настраиваемое представление UIKit, которое представляет собой UITextView с большим количеством пользовательских форматов

Мое желание - ограничить высоту UITextView, чтобы соответствовать высоте представления Text (одна строка, высота зависит от системных шрифтов и т. Д. c ). Я пробовал много способов go об этом, но я не могу найти то, что работает. GeometryReader, кажется, только передает родительские атрибуты потомку, но не решает проблему "родного брата".

Есть идеи или идеи?

1 Ответ

1 голос
/ 23 апреля 2020

Вот демонстрация возможного макета. Протестировано с Xcode 11.4 / iSO 13.4

demo

Примечание: .border и .padding добавлены только для демонстрации и лучшей видимости. Важные места отмечены в комментарии. MultilineTextView является простым представителем UITextView

struct DemoFixedToLabel: View {
    var body: some View {
        HStack {
            Text("Some Text").font(Font.system(.title))
                .padding()
                .border(Color.blue)
                .fixedSize()             // << here !!
            MultilineTextView(text: .constant("My desire is to restrict the height of the UITextView to match the height of the Text"))
                .border(Color.green)
        }
        .padding()
        .border(Color.red)
        .fixedSize(horizontal: false, vertical: true)    // << here !!
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...