Кнопка с изображением внутри NavigationView неправильно масштабируется - PullRequest
0 голосов
/ 09 февраля 2020

Когда я использую в качестве системного образа, все работает нормально, но у меня есть изображение png размером 512x512, и я хочу, чтобы оно помещалось внутри навигационного бара. Изображение просто занимает почти весь экран со следующим кодом:

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())
    }

}

1 Ответ

0 голосов
/ 09 февраля 2020

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())
        }

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...