Me gustaría poder decir que necesito un HStack de tantas vistas de texto y que aparezcan en mi cuerpo de vista de contenido. Lo más cercano que tengo es esto: tengo un archivo llamado TextView.swift con el siguiente código:

import SwiftUI
 
struct TextView: UIViewRepresentable {
 
    @Binding var text: String
    @Binding var textStyle: UIFont.TextStyle
 
    func makeUIView(context: Context) -> UITextView {
        let textView = UITextView()
 
        textView.font = UIFont.preferredFont(forTextStyle: textStyle)
        textView.autocapitalizationType = .sentences
        textView.isSelectable = true
        textView.isUserInteractionEnabled = true
 
        return textView
    }
 
    func updateUIView(_ uiView: UITextView, context: Context) {
        uiView.text = text
        uiView.font = UIFont.preferredFont(forTextStyle: textStyle)
     }
  }
// In content view:
struct ContentView: View {
    
    @State private var message = "this is my message in a bottle"
    @State private var textStyle = UIFont.TextStyle.body
    
    var body: some View {
        TextView(text: $message, textStyle: $textStyle)
            .padding(.horizontal)
    }    
}

En lugar de una vista de texto, me gustaría tener una HStack con 15 vistas de texto dentro.

Gracias por tu ayuda.

0
Mariano Giovanni Mario Leonti 24 ago. 2020 a las 03:06

1 respuesta

La mejor respuesta

Simplemente puede escribir una función para devolver la vista deseada.

struct ContentView: View {

    let numberOfTextViews = 15

    func getTextViews() -> some View {
        return HStack {
            ForEach(0..<self.numberOfTextViews, id: \.self) {
                index in
                Text("this is item \(index)")
                    .background(index % 2 == 0 ? Color.Red : Color.Blue)
            }
        }
    }

    var body: some View {
        self.getTextViews()
    }    
}
1
Mohammad Rahchamani 26 ago. 2020 a las 06:16