Как я могу объединить текстовые представления с помощью цикла? - PullRequest
2 голосов
/ 03 ноября 2019

Мы можем создавать новые текстовые представления из нескольких маленьких, используя +, что является простым способом создания более сложного форматирования. Например, это создает три текстовых представления в разных цветах и ​​объединяет их вместе:

struct ContentView: View {
   var body: some View {
       Text("Colored ")
           .foregroundColor(.red)
       +
       Text("SwifUI ")
        .foregroundColor(.green)
       +
       Text("Text")
           .foregroundColor(.blue)
   }   
}

Но как я могу создать комбинированные текстовые представления путем циклического прохождения. Например (что не работает)

   View v;
   ForEach((1...3), id: \.self) {
      v.append(Text("\($0)"))
   }

1 Ответ

1 голос
/ 03 ноября 2019

Вы пытаетесь получить выражение типа Text из последовательности 0...3. Сначала вы можете map последовательность Text объектов. Как вы объединяете последовательность объектов в один? reduce!

(1...3).map { Text("\($0)") }.reduce(Text(""), +)

Обратите внимание, что Text("") действует как элемент идентификации операции +.

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