SwiftUI中的navigationBarItems和toolbar有什么区别?我一直在交替使用它们,感觉它们用不同的语法做同样的事情,例如:在navigationBar(.leading/.trailing)上放置按钮。
navigationBarItems
toolbar
e4eetjau1#
正如Lorem Ipsum所提到的,.toolbar是前进的方向。最大的区别是.navigationBarItems仅适用于iOS/iPad操作系统,而.toolbar也适用于macOS。这使得创建通用视图更加容易。如果你只是针对移动的设备,目前的结果并没有什么不同。
.toolbar
.navigationBarItems
cfh9epnr2#
.toolbar将(默认情况下)根据区域设置自动在前沿或后沿显示按钮。
.toolbar{ Button("Edit") { print("Editing ...") } }
如果是从左到右的语言,这个按钮会显示在后沿,如果是从右到左的语言,这个按钮会显示在前沿。你可以把它放在你想要的地方,用ToolbarItem() Package 它。
ToolbarItem()
.toolbar{ ToolbarItem(placement: .navigationBarLeading) { // Button } }
e5nqia273#
除了已经说过的以外:.toolbar需要iOS 14。许多项目需要向后兼容iOS 13,而navigationBarItems是实现这一目标的唯一途径
3条答案
按热度按时间e4eetjau1#
正如Lorem Ipsum所提到的,
.toolbar
是前进的方向。最大的区别是.navigationBarItems
仅适用于iOS/iPad操作系统,而.toolbar
也适用于macOS。这使得创建通用视图更加容易。
如果你只是针对移动的设备,目前的结果并没有什么不同。
cfh9epnr2#
.toolbar将(默认情况下)根据区域设置自动在前沿或后沿显示按钮。
如果是从左到右的语言,这个按钮会显示在后沿,如果是从右到左的语言,这个按钮会显示在前沿。你可以把它放在你想要的地方,用
ToolbarItem()
Package 它。e5nqia273#
除了已经说过的以外:
.toolbar
需要iOS 14。许多项目需要向后兼容iOS 13,而navigationBarItems
是实现这一目标的唯一途径