swift - NavigationView 内带有图像的按钮缩放不正确

标签 swift swiftui navigationbar swift5 navigationview

当我用作系统图像时,一切正常,但我有一个大小为 512x512 的 png 图像,我想让它适合在 navigationBarItem 内。图像几乎占据了整个屏幕,代码如下:

var body: some View {

    NavigationView {
        Text("Main")            
            .navigationBarTitle("Title", displayMode: .inline)
            .navigationBarItems(leading:
                Button(action: {
                    print("button pressed")

                })
                {
                    Image("menu")
                        .renderingMode(.template)
                        .resizable()
                        .aspectRatio(contentMode: .fit)
                        .scaledToFit()
                }
        )
            .navigationViewStyle(StackNavigationViewStyle())
    }

}

最佳答案

GeometryReader 为您提供父级指定的区域。我发现指定的空间很小,但如果增加三倍,就很合适了。

import SwiftUI

struct NavItemImage: View {
    var body: some View {

        NavigationView {
            Text("Main")
                .navigationBarTitle(Text("Title").font(.largeTitle), displayMode: .inline)
                .navigationBarItems(leading:
                    GeometryReader{geo in
                        Button(action: {
                            print("button pressed")
                        })
                        {
                            Image("menu")
                                .renderingMode(.original)
                                .resizable()
                                .aspectRatio(contentMode: .fit)
                                .scaledToFit()
                                .frame(width: geo.size.width * 3, height: geo.size.height * 3, alignment: .leading)
                        }
                    }
            )
                .navigationViewStyle(StackNavigationViewStyle())
        }

    }
}

关于swift - NavigationView 内带有图像的按钮缩放不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60132097/

相关文章:

swift - TabbarController 子 Controller 总是返回 nil - Swift 4

ios - 如何从自定义单元格类更改数据源

swift - 我该如何解决有关委托(delegate)和协议(protocol)的问题?

css - 我需要帮助创建导航栏吗?将鼠标悬停在链接上以显示一个大的 div 框?

swift - 如何在 swift 中创建像 Sorted() 这样将接收者作为参数的方法?

swift - 如何在 SwiftUI 中访问父框架

swift - 当 SecureField 在 SwiftUI 中获得焦点/不集中时执行代码

SwiftUI 观察已发布对象的已发布对象

iOS:以编程方式创建的 UINavigationController 的导航栏未扩展到安全区域

iOS:是否有可能让一个应用程序在后台显示在屏幕的顶部区域?