为什么在iOS 26的工具栏中,Menu的 .glassEffect着色没有生效?
这正是我想要实现的效果(来自手机应用,照片应用中也有类似的)

我在工具栏里有一个标准的SwiftUI Menu,并应用了玻璃质感来表示筛选器处于活跃状态:
Menu {
// …filter options
} label: {
Label("Filter", systemImage: "line.3.horizontal.decrease")
}
.glassEffect(.regular.tint(.accentColor).interactive())
玻璃效果根本没有渲染出来,也没有任何着色。按钮看起来完全没有样式。
如果把标签从Label改成Image,玻璃效果就会出现,但呈现为一个拉伸的椭圆形按钮。
我也尝试了其他几种组合:

在苹果版本中,悬停时(iPad)高亮与着色本身对齐(见上面的第二张图片),而不是像上面列表中的示例3那样在外部对齐:

有没有办法让菜单触发项的内嵌着色看起来和手机应用的示例一样?
解决方案
不同的工具栏放置位置会带来不同的默认效果。
看起来放置在 .confirmationAction 时默认会给出以强调色为tint的效果。甚至不需要应用 .glassEffect:
NavigationStack {
Text("Main content")
.toolbar {
ToolbarItem(placement: .confirmationAction) {
Menu {
// ...filter options
} label: {
Label("Filter", systemImage: "line.3.horizontal.decrease")
}
// .glassEffect(.regular.tint(.accentColor).interactive())
}
}
}

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。