[英]How to communicate size change to SwiftUI subview
在我的 SwiftUI 代碼中,我有一個具有固定高度但動態寬度的元素,應根據對元素的要求進行設置。 如果沒有設置寬度,則元素的寬度應僅與孩子期望的一樣寬。
如何將大小更改傳播到封裝視圖?
例子:
import SwiftUI
struct MyView: View {
var body: some View {
Text("Hello World")
.frame(height: 48)
.background(Rectangle().fill(Color.blue))
}
}
struct ContentView: View {
var body: some View {
VStack(spacing: 8) {
MyView()
.frame(width: 300)
MyView()
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
如果我正確理解您的需求,這是可能的解決方案
使用 Xcode 11.4 / iOS 13.4 測試
struct MyView: View {
var width: CGFloat? = nil
var body: some View {
Text("Hello World")
.frame(height: 48)
.frame(minWidth: width)
.background(Rectangle().fill(Color.blue))
}
}
struct ContentView: View {
var body: some View {
VStack(spacing: 8) {
MyView(width: 300)
MyView()
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.