防止菜单图标在点击时褪色



我有以下Menu组件:

Menu {
ForEach(self.options, id: .self) { option in
Button(action: {
self.selected = option
self.action(option)
}) {
Text(option))
}
}
}
.label: {
Image("menu-image")
}

一切都很好,但是当我点击图像打开菜单时,当下拉菜单显示时,它就消失了。如何自定义此行为,使图像(或任何视图用作菜单按钮)而不是淡出?

可以试试这个。诀窍是制作一个ZStack。在我的例子中,我取了一个系统映像…但是你可以拍任何你想拍的照片。

import SwiftUI
struct NonFadingMenuImage: View {
@State private var menuIsShown = false
var body: some View {
ZStack{
Menu(content:  {
Section(header: Text("create options")){
Text("menu option")
}
}, label: {
Image(systemName: "ellipsis.circle")
.foregroundColor(.black)
.padding()

}).onTapGesture {
menuIsShown = true
}

if menuIsShown{
Image(systemName: "ellipsis.circle")
.foregroundColor(.black)
.padding()
.onTapGesture {
menuIsShown = false
}

}
}
}
}

最新更新