簡體   English   中英

SwiftUI:如何動態設置自定義視圖大小

[英]SwiftUI: How to set custom view size dynamically

我使用 SwiftUI。 我需要一個自定義視圖。 自定義視圖寬度應等於超級視圖寬度。 自定義視圖包含兩個圖像視圖,分別左右對齊。 每個圖像視圖具有相同的寬度和高度(縱橫比 = 1)。 兩個圖像視圖有 10 點空間。 我將在圖像視圖中顯示不同尺寸的圖像(縮放比例填充)。

在此處輸入圖片說明

如果我使用GeometryReader ,我可以動態設置圖像視圖框架,但是如何動態設置GeometryReader框架? 如果我HStack沒有GeometryReader的情況下使用HStack ,則圖像視圖框架是可變的。 如何在 SwiftUI 中做到這一點?

也許是以下的一些變體:

struct CustomView: View {
    var body: some View {
        HStack(spacing: 10) {
            Image(systemName: "heart.fill")
                .resizable()
                .aspectRatio(1, contentMode: .fit)

            Image(systemName: "heart.fill")
                .resizable()
                .aspectRatio(1, contentMode: .fit)
        }.frame(maxWidth: .infinity)
    }
}

兩個圖像保持 1:1 的縱橫比,它們之間有 10 個點的間距,但允許使用.frame修飾符水平增長。

根據需要將Image(systemName: "heart.fill")替換為所需的圖像源。

如果您的源圖像資產沒有 1:1 的縱橫比,請將contentMode設置為.fill ,並使用.frame(height: ..)限制HStackCustomView內的CustomView .frame(height: ..)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM