SwiftUI

如何在我的视图中更新 @State变量?

struct ContentView: View { @State var inputs1:Array = ["*", "*", "*"] @State var inputs2:Array = ["*", "*", "*"] var body: some View { VStack(alignment: .center) { let inputRow1 = createRow(inputs1[0], inputs1[1], inputs1[2]) inputRow1 let

SwiftUI的滚动视图:GeometryReader与 PreferenceKey的问题

我正在打造一个SwiftUI风格的“记分牌”界面:一个ScrollView,顶部只有一个固定头部。随着滚动,固定头部应更新显示当前活动的分区(NBA/NHL等),类似于一个粘性“当前分类”标签。 我目前的做法是: 每个分区在顶部插入一个GeometryReader 每个GeometryReader将一个标记(id、minY)写入一个PreferenceKey onPreferenceChange会在每帧读取所有标记,基于阈值找到活动的分区,并更新一个 @State的 activeLeagueID 固定头部

在SwiftUI中,颜色填充不会跟随圆角

我定义了如下形状: struct DisplayView: View { var body: some View { ZStack{ RoundedRectangle(cornerRadius: 20) .stroke(Color.black, lineWidth: 1) VStack{ ScrollView { VStack (spacing: 10) { ForEach (0..<30) { Text("Item \($0)") .font(.title) } } .frame(maxWidth: .

SwiftUI iOS 26 - 当Picker的选择将symbolVariant从 .none改为.fill时,工具栏菜单的标签图标会间歇性地消失约1秒

我在一个工具栏里有一个Menu,它的标签会根据一个内联Picker的选择,在.symbolVariant和.foregroundStyle之间变化。 从默认状态(无变体,主色)切换到活动状态(.fill,蓝色)时,图标有时会消失大约一秒,然后再以正确的样式重新出现。 只有在这个方向才会发生,返回到默认状态时从不闪烁。 这是间歇性的,但通过快速多次切换很容易复现。 我尝试了.contentTransition(.identity)、.symbolEffectsRemoved()、通过Task推迟状态更新,以

在WindowGroup中检测标签页(NSWindowTab)的关闭

场景/代码 我有一个SwiftUI应用,它显示带标签页的窗口(就像在一个 WindowGroup 里的 NSWindowTab): import SwiftUI @main struct TabTestApp: App { var body: some Scene { WindowGroup{ ContentView() // Hasn't any content of relevance to this question. }.commands{ CommandGroup(after: .newItem

SwiftUI iOS 26 - 菜单按钮在选择动画期间从容器外部浮出

都不知道该怎么解释这件事…… 在iOS 26上,在一个包含Menu的可滚动视图中,如果在菜单选择动画尚未完成时开始滚动视图(大约在点击选项后约1 秒内),菜单图标会暂时错位:它相对于容器发生位置偏移,仿佛从布局边界之外“漂浮”出来。动画完成或滚动停止后,它会回到原位,但在交互过程中,该按钮明显与容器/对齐方式脱离。 这不是预期的行为,对吧? 这在我的项目中的每个菜单上都会发生,甚至在工作表工具栏中的菜单也会这样,当在选中后拖动工作表时,同样的问题也会出现。我附上了一些不同情形的动图。 测试用样例: imp

如何在SwiftUI的 HStack中改变单个元素的垂直对齐?

我有如下代码。 struct ContentView: View { @State var textInput: String = "Testing" private let inputCornerRadius: CGFloat = 24 var body: some View { HStack(alignment: .bottom, spacing: 8) { TextField("Chat", text: $textInput, axis: .vertical) .lineLimit(1...9) .

在一个栈上设置内边距,其子视图可能是空视图

假设我们有一个OptionalView,当某个条件成立时它会渲染一个视图(这个条件是什么,我们并不知道),否则什么也不渲染(将主体解析为空视图)。 struct OptionalView: View { private var random: Int { (1...5).randomElement()! } var body: some View { if random == 1 { // Intentional, we cannot check in parent if this condition i

使用SwiftData的 OutlineGroup

我的SwiftData模型由一个名为 Entry 的模型实体组成。目前我把它们显示在一个 List 中: @Model final class Entry: Decodable, Identifiable { var fullName: String = "" // ... } struct EntriesView: View { //... @Query(sort: \Entry.fullName) private var entries: [Entry] var body: some View { L

如何制作一个带动画的L 形视图菜单?(自定义菜单思路/ SwiftUI)

Apple菜单和Sport App很酷,但我的想法当然比别人更酷。我正在尝试做出新东西! 以下是完整代码: import SwiftUI struct ContentView: View { @State private var isExpanded = false @State private var pillWidth: CGFloat = 0 let height: CGFloat = 40 var body: some View { ZStack(alignment: .topLeading) {