SwiftUI `navigationBarItems` 与 `toolbar` 有什么区别?

Vis*_*arp 21 swift swiftui

navigationBarItemsSwiftUI与SwiftUI有什么区别toolbar?我一直交替使用它们,感觉它们用不同的语法做同样的事情,例如:在导航栏上放置按钮(.leading/.trailing)。

Ren*_*ers 24

正如 Lorem Ipsum 所说,.toolbar这是前进的道路。最大的区别是.navigationBarItems仅适用于 iOS/iPad 操作系统,而.toolbar也适用于 macOS。

这使得创建通用视图变得更加容易。

如果您只是针对移动设备,那么目前的结果实际上没有任何差异。


Tim*_*imD 9

.toolbar 将(默认情况下)根据区域设置自动在前缘或后缘显示按钮。

.toolbar{
    Button("Edit") {
        print("Editing ...")
    }
}
Run Code Online (Sandbox Code Playgroud)

对于从左到右的语言,该按钮将显示在后缘;对于从右到左的语言,该按钮将显示在前缘。您可以通过将其包裹在ToolbarItem().

.toolbar{
    ToolbarItem(placement: .navigationBarLeading) {
        // Button
    }
}
Run Code Online (Sandbox Code Playgroud)