swift - 你如何垂直居中 SwiftUI tabItem
问题描述
我使用 SwiftUI 创建了一个 TabView。我试图让 TabBar 中的 TabItems 垂直居中。但是,它们没有正确居中。
import SwiftUI
struct ContentView: View {
var body: some View {
TabView(selection: .constant(0)) {
RouteList()
.tabItem {
Image("subway-3")
Text("Trains")
}.tag(0)
VStack {
Text("Tab 2")
}
.tabItem {
Image("subway-3")
Text("Lines")
}.tag(1)
VStack {
Text("Tab 3")
}
.tabItem {
Image(systemName: "star")
Text("Slow Zones")
}.tag(2)
}
}
}
在这里你可以看到这段代码的结果。
解决方案
您将无法将标签栏项目垂直居中,因为它们最终会超出安全区域。底部的空白区域是保存区底部边缘和屏幕底部边缘之间的区域。您可以将新款 iPhone 上的外观与一个缺口与旧款 iPhone 的外观进行比较,后者的保存区域一直延伸到屏幕边缘:
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
Group {
ContentView()
.previewDevice(PreviewDevice(stringLiteral: "iPhone 8"))
ContentView()
.previewDevice(PreviewDevice(stringLiteral: "iPhone XR"))
}
}
}
推荐阅读
- react-native - 我们可以在 NativeBase 的一个变体 Button 中使用两种不同的类型吗?
- flutter - 未能在具有颤振飞镖地图的列表上使用 .toJson() 函数
- eventstoredb - EventStore 在启动时静默停止
- java - addUrl 库的顺序是否影响库之间的引用
- javascript - 可以将数据表用作源数据吗?
- python - 我怎样才能得到这样的 Django ManyToManyField 列表?
- dart - 如何使类型推断在泛型方法中工作?
- jhipster - JHipster 7.1.0:无法生成网关,Provider reactor.blockhound.junit.platform.BlockHoundTestExecutionListener 无法实例化
- angular - 当我们尝试添加组件时,为什么 Angular cli 会出现以下错误?
- python-3.x - XLRDError:不支持的格式,或损坏的文件:预期的 BOF 记录;找到 b'Company