Как объединить два текстовых представления в SwiftUI, которые имеют разное форматирование - PullRequest
0 голосов
/ 03 апреля 2020

Я могу объединить два вида текста, как это.

Text("1") + Text("1")

Но как я могу сделать что-то подобное?

Text("1") + Text("1").border(Color.red)

Я не могу просто сделать это

HStack(spacing: 0) { 
    Text("1")
    Text("1").border(Color.red) 
}

потому что дизайн будет вести себя иначе, как показано ниже enter image description here

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

1 Ответ

0 голосов
/ 03 апреля 2020

оператор + может быть применен, если оба операнда имеют одинаковый тип (Text в вашем случае).

struct MyView: View {

    var body: some View {

        Text("A").font(.largeTitle).foregroundColor(Color.red) + Text("B").font(.title) + Text("C").font(.footnote)
    }
}

дает вам

enter image description here

, то есть снова ровно один текст, просто потому, что модификатор .font или .foreground может вернуть Text при применении к Text.

.border модификатор возвращает View Вот почему это не работает в вашем примере.

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