SwiftUI 将toolbar的内容提取为成员变量

因为toolbar的内容通常写起来是比较长的,且括号比较多,导致body看起来很凌乱。因此我习惯于把toolbar的内容提取成变量。
关键:修饰符@ToolbarContentBuilder 和 返回值some ToolbarContent

struct ContentView: View {
    var body: some View {
        NavigationView {
            List {}
                .toolbar(content: myToolBarContent)
        }
    }
    
    @ToolbarContentBuilder
    func myToolBarContent() -> some ToolbarContent {
        ToolbarItem(placement: . navigationBarLeading) {
            Text("Hi")
        }
        ToolbarItem(placement: .navigationBarTrailing) {
            Text("Hello")
        }
    }
}

tips:

Xcode 14.2之后,NavigationView的 leading 、 trailing按钮,也是使用toolbar()来进行添加。

iOS16之后,NavigationView被细化成NavigationStack和NavigationSplitView,对于iPhone端,使用NavigationStack即可,用法不变。
具体请参考:https://developer.apple.com/documentation/swiftui/migrating-to-new-navigation-types

posted @   逆行  阅读(66)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
历史上的今天:
2020-02-24 Django Hello World!
2020-02-24 用Docker搭建web开发环境
点击右上角即可分享
微信分享提示
主题色彩