Как получить ширину текста с SwiftUI? - PullRequest
0 голосов
/ 27 марта 2020

Я хотел бы подчеркнуть заголовок прямоугольником, ширина которого должна быть равна ширине текста.

Сначала я создаю подчеркнутый текст, как показано ниже:

struct Title: View {
    var body: some View {
        VStack {
            Text("Statistics")
            Rectangle()
            .foregroundColor(.red)
            .frame(height: (5.0))
        }
    }

}

Итак, я получаю следующий результат:

enter image description here

Теперь я хочу получить этот результат:

enter image description here

Поэтому я хотел бы знать, возможно ли связать ширину текста и применить его к Rectangle, написав что-то вроде:

struct Title: View {

    var body: some View {
        VStack {
            Text("Statistics")
            Rectangle()
            .foregroundColor(.red)
            .frame(width: Text.width, height: (5.0))
        }
    }

}

Таким образом, я может изменить текст, и он будет динамически подчеркнут с правильной шириной.

Я пробовал много вариантов, но я не могу найти, как это сделать. Я также проверил этот вопрос , но, похоже, это не та проблема.

1 Ответ

2 голосов
/ 27 марта 2020

Просто укажите, что контейнер имеет фиксированный размер, и он будет плотно прилегать к содержимому, например

demo

var body: some View {
    VStack {
        Text("Statistics")
        Rectangle()
        .foregroundColor(.red)
        .frame(height: (5.0))
    }.fixedSize()              // << here !!
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...