1

我正在尝试制作一个使用 SwiftUINavigationView构建侧边菜单的 iOS 应用程序。在 iPhone 上它可以完美运行,但在 iPad 上我无法摆脱侧边栏按钮和后退按钮文本和图标。我想用名为的三个水平线图标替换这些按钮line.horizontal.3

带有侧面菜单图标的横向屏幕截图我想用三行图标替换

带有后退按钮的纵向屏幕截图(包括图标和文本)我想用三行图标替换

我正在使用的代码如下:

import SwiftUI

struct ContentView_iPad: View {
    @State var showMenu: Bool = false
    
    
    var body: some View {
        NavigationView{
            MenuView()
            iPad_menu()
                .navigationBarTitle("Side Menu", displayMode: .inline)
                .navigationBarItems(leading:
                                        (Button(action: {
                                            withAnimation{
                                                self.showMenu.toggle()
                                            }
                                        }){
                                            Image(systemName: "line.horizontal.3").imageScale(.large)
                                        }
                                        ))
                .navigationViewStyle(StackNavigationViewStyle())
        }
        
    }
}

主视图:

import SwiftUI
    
struct iPad_menu: View {
        var body: some View {
            EmptyView()
                .background(Color.black)
        }
    }

菜单视图:

import SwiftUI

struct MenuView: View {
    var body: some View {
        VStack(alignment: .leading) {
                    HStack {
                        Image(systemName: "person")
                            .foregroundColor(.gray)
                            .imageScale(.large)
                        Text("Profile")
                            .foregroundColor(.gray)
                            .font(.headline)
                    }
                        .padding(.top, 100)
                    HStack {
                        Image(systemName: "envelope")
                            .foregroundColor(.gray)
                            .imageScale(.large)
                        Text("Messages")
                            .foregroundColor(.gray)
                            .font(.headline)
                    }
                        .padding(.top, 30)
                    HStack {
                        Image(systemName: "gear")
                            .foregroundColor(.gray)
                            .imageScale(.large)
                        Text("Settings")
                            .foregroundColor(.gray)
                            .font(.headline)
                    }
                        .padding(.top, 30)
                }
        .padding()
                    .frame(maxWidth: .infinity, alignment: .leading)
                    .background(Color(red: 32/255, green: 32/255, blue: 32/255))
                    .edgesIgnoringSafeArea(.all)
    }
}
4

0 回答 0