我想在 Menu 中使用 View 并且我的 View 具有@State屬性,但是我遇到了包含在 Menu 中的視圖沒有調整大小的問題。我檢查了檔案,沒有發現任何會影響選單內視圖大小的東西。有人可以描述為什么 Menu 有這種行為以及如何解決這個問題嗎?
import SwiftUI
struct MenuView: View {
@State var greeting: Greetings = .short
enum Greetings: String, Identifiable, CaseIterable {
case short = "Hi"
case medium = "Hello"
case long = "Nice to see you"
var id: String { self.rawValue }
}
var body: some View {
VStack(spacing: 20) {
Picker("Options", selection: $greeting) {
ForEach(Greetings.allCases) { greeting in
Text(greeting.rawValue).tag(greeting)
}
}
.pickerStyle(.segmented)
Text("Greeting wrapped in menu:")
Menu {
Button("Send to Someone", action: {})
Button("Save as PDF", action: {})
} label: {
Label(greeting.rawValue, systemImage: "doc.fill")
.labelStyle(.titleOnly)
}
Text("Greeting without menu:")
Text(greeting.rawValue)
}
}
}
uj5u.com熱心網友回復:
我假設您的意思是選單標簽中的文本不會根據您在選取器中所做的選擇而增長或縮小。
這是因為標簽的大小正在設定但未更改。如果你沒問題,在標簽的框架上設定一個maxWidthof可以為你提供這種能力。.infinity
Label(greeting.rawValue, systemImage: "doc.fill")
.labelStyle(.titleOnly)
.frame(maxWidth: .infinity) <<-- This here

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/468367.html
上一篇:如何渲染避免安全區域視圖?
