美文网首页Swift
SwiftUI一起学之十 -- 导航栏

SwiftUI一起学之十 -- 导航栏

作者: sunny_ke_ke | 来源:发表于2021-05-29 18:09 被阅读0次

    一 学习目标

    在SwiftUI中导航栏的使用

    二 学习效果

    image.pngimage.png

    image.pngimage.png

    image.pngimage.png

    三 主要操作步骤

    3.1 添加导航栏

    var body: some View {
        NavigationView {
            VStack{
    
            }.navigationBarTitle("导航栏")
        }
    }
    
    image.pngimage.png

    3.2 导航栏模式

    displayMode参数来自定义标题的显示方式。

    1. .large选项显示大标题,这对于导航堆栈中的顶级视图很有用。
    2. .inline选项显示小标题,这些小标题对于导航堆栈中的辅助视图,第三视图或后续视图很有用。
    3. .automatic选项是默认选项(初始默认 .large),它使用前面视图使用的选项。
    var body: some View {
            NavigationView {
                VStack{
                    
                }.navigationBarTitle("导航栏(.inline)", displayMode: .inline)
            }
        }
    

    image.pngimage.png

    var body: some View {
            NavigationView {
                VStack{
                    
                }.navigationBarTitle("导航栏(.large)", displayMode: .large)
            }
        }
    
    image.pngimage.png

    3.3 导航栏标题颜色

    image.pngimage.png
    init() {
        // 导航栏标题颜色
        UINavigationBar.appearance().largeTitleTextAttributes = [.foregroundColor: UIColor.red]
        UINavigationBar.appearance().titleTextAttributes = [.foregroundColor: UIColor.red]
    }
    

    3.4 导航栏返回键的颜色

    image.pngimage.png
    init() {
        // 导航栏返回键的颜色
        UINavigationBar.appearance().tintColor = .yellow
    }
    

    3.5 导航栏横屏切换

    默认情况下iphone横屏会看到两个视图,一个是第一页面的导航图,一个是下一页的详情图


    IMG_0DD5ED8566B5-1.jpegIMG_0DD5ED8566B5-1.jpeg

    NavitationView 设置模式.navigationViewStyle(StackNavigationViewStyle()) 可以解决这个问题

    var body: some View {
            NavigationView {
                ZStack{
                    Color.red
                }
                .navigationBarTitle("标题")
            }.navigationViewStyle(StackNavigationViewStyle())
        }
    

    参考:

    1. SwiftUI:NavigationView

    相关文章

      网友评论

        本文标题:SwiftUI一起学之十 -- 导航栏

        本文链接:https://www.haomeiwen.com/subject/rgqusltx.html