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

时间:2021-02-26 13:38:07

标签: swiftui

我有以下菜单组件:

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

一切正常,但只要我点击图像打开菜单,它就会在显示下拉菜单时淡出。如何自定义此行为以使图像(或用作菜单按钮的任何视图)淡出?

1 个答案:

答案 0 :(得分:1)

也许试试这个。诀窍是制作一个 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
                }
            
        }
    }
}
}