SwiftUI Row Chiều cao của danh sách - làm thế nào để kiểm soát?


9

Tôi có một Danh sách đơn giản trong SwiftUI. Mã và ảnh chụp màn hình bao gồm bên dưới. Tôi muốn giảm chiều cao của mỗi hàng trong danh sách (để có ít không gian hơn giữa các dòng và dòng văn bản gần nhau hơn).

Tôi đã cố gắng thêm ".frame (height: 20)" vào HStack nhưng nó chỉ cho phép tăng khoảng cách dòng!

Có cách nào làm được việc này không?

Cảm ơn!

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

nhập mô tả hình ảnh ở đây

Câu trả lời:


24

Sử dụng biến Môi trường để đặt Chiều cao tối thiểu của hàng trong danh sách và sau đó thay đổi chiều cao khung HStack thành chiều cao mong muốn của bạn.

Đây là mã:

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

Đây là đầu ra:

nhập mô tả hình ảnh ở đây


Hoàn hảo - chính xác những gì tôi đang tìm kiếm. Cảm ơn phản hồi nhanh chóng Razib - NHIỀU đánh giá cao!
Gerard

Câu trả lời tuyệt vời, có nhiều thủ thuật ẩn trong SwiftUI :)
Michał Ziobro
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.