Altura de la fila SwiftUI de la lista: ¿cómo controlarla?

9

Tengo una lista simple en SwiftUI. Código y captura de pantalla incluidos a continuación. Me gustaría reducir la altura de cada fila en la lista (por lo tanto, menos espacio entre líneas y líneas de texto más cerca).

¡Ya intenté agregar un ".frame (height: 20)" a HStack pero solo permite aumentar el espacio entre líneas!

¿Hay una manera de hacerlo?

¡Gracias!

Gerard

import SwiftUI

struct PressureData: Identifiable {
  let id: Int
  let timeStamp: String
  let pressureVal: Int
}

struct ContentView : View {
  @State var pressureList = [
    PressureData(id: 0, timeStamp: "11:49:57", pressureVal: 10),
    PressureData(id: 1, timeStamp: "11:49:56", pressureVal: 8),
    PressureData(id: 2, timeStamp: "11:49:55", pressureVal: 9),
    PressureData(id: 3, timeStamp: "11:49:54", pressureVal: 1),
  ]

  var body: some View {
    VStack {
        Text("Pressure Readings")
            .font(.system(size: 30))
        List(pressureList) { row in
            HStack {
               Spacer()
                Text(row.timeStamp)
                Text("--->")
                Text(String(row.pressureVal))
                Spacer()
            } .frame(height: 30)
        }
    }
  }
}

ingrese la descripción de la imagen aquí

Gerard
fuente

Respuestas:

24

Use la variable de entorno para establecer la altura mínima de la fila en la lista y luego cambie la altura del marco HStack a la altura deseada.

Aquí está el código:

var body: some View {
    VStack {
        Text("Pressure Readings")
            .font(.system(size: 30))
        List(pressureList) { row in
            HStack {
                Spacer()
                Text(row.timeStamp)
                Text("--->")
                Text(String(row.pressureVal))
                Spacer()
            }.frame(height: 10)
        }.environment(\.defaultMinListRowHeight, 10)
        }
  }

Aquí está la salida:

ingrese la descripción de la imagen aquí

Razib Mollick
fuente
Perfecto, exactamente lo que estaba buscando. Gracias por la rápida respuesta Razib - ¡MUCHO apreciado!
Gerard
Gran respuesta, hay muchos trucos ocultos en SwiftUI :)
Michał Ziobro