SwiftUI Row Height of List - bagaimana cara mengontrol?

9

Saya punya Daftar sederhana di SwiftUI. Kode dan Screenshot termasuk di bawah ini. Saya ingin mengurangi ketinggian setiap baris dalam daftar (jadi lebih sedikit ruang antara garis dan garis teks yang berdekatan).

Saya sudah mencoba menambahkan ".frame (tinggi: 20)" ke HStack tetapi hanya memungkinkan penspasian baris ditingkatkan!

Apakah ada cara untuk melakukan itu?

Terima kasih!

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)
        }
    }
  }
}

masukkan deskripsi gambar di sini

Gerard
sumber

Jawaban:

24

Gunakan variabel Lingkungan untuk mengatur Tinggi min minimum baris dalam daftar dan setelah itu ubah tinggi bingkai HStack ke tinggi yang Anda inginkan.

Ini kodenya:

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)
        }
  }

Berikut hasilnya:

masukkan deskripsi gambar di sini

Razib Mollick
sumber
Sempurna - persis apa yang saya cari. Terima kasih atas tanggapan cepat Razib - BANYAK dihargai!
Gerard
Jawaban bagus, ada banyak trik tersembunyi di SwiftUI :)
Michał Ziobro