SwiftUI中,工具栏中菜单和按钮的标签图片大小不同。

7
我添加了两个ToolbarItem。一个是Menu,另一个是Button
.toolbar {
    // Menu 
    ToolbarItem(placement: .navigationBarTrailing) {
        Menu(content: {
            Text("hello world")
        }, label: {
            Image(systemName: "gear")
        })
    }
    
    // Button
    ToolbarItem(placement: .navigationBarTrailing) {
        Button(action: {
            print("button touched")
        }, label: {
            Image(systemName: "gear")
        })
    }
}

即使我使用相同的图像作为标签,大小也不同。 结果就像这样。

enter image description here

我希望将菜单标签图片的大小调整为按钮大小,以便用户更轻松地触摸它。
2个回答

5

只需将.imageScale(.large)修饰符添加到MenuImage中即可。

Menu(content: {
    Text("hello world")
}, label: {
    Image(systemName: "gear")
        .imageScale(.large) // Add this modifier

默认情况下,SwiftUI 引擎会自动计算要使用的尺寸。


3

在 macOS 12.beta、Xcode 13.beta 和目标 iOS 15 以及 Mac Catalyst 上工作良好。

这是我用于测试的代码:

import SwiftUI

@main
struct TestApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
struct ContentView: View {
    var body: some View {
        NavigationView {
            Text("testing")
                .toolbar {
                    // Menu
                    ToolbarItem(placement: .navigationBarTrailing) {
                        Menu(content: {
                            Text("hello world")
                        }, label: {
                            Image(systemName: "gear")//.resizable().scaleEffect(1.2)
                        })
                    }
                    // Button
                    ToolbarItem(placement: .navigationBarTrailing) {
                        Button(action: {
                            print("button touched")
                        }, label: {
                            Image(systemName: "gear")
                        })
                    }
                }
        }
    }
}

您可以使用 "Image(systemName: "gear").resizable().scaleEffect(x)" 来解决任何不匹配问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接