我正在应用程序中使用相机。该应用程序允许您借助SwiftUI中的TabView
导航到此摄像机视图。但是,问题是,当我在摄像机视图上时,我想隐藏TabView
。到目前为止,我一直在尝试找到解决方案,但似乎找不到任何解决方案。
这里是screenshot of the code and the view with the tabview
注:屏幕截图包含图像(如果预览)。当我在真实设备上运行相机时,它可以正常工作。问题是进入摄像机视图后,我需要隐藏标签栏。
这是我使用的代码示例:
import SwiftUI
struct AppView: View {
var body: some View {
TabView{
Home()
.tabItem {
// Add icon
Text("Home")
}
MomentsCam()
.tabItem {
// Add icon
Text("Camera")
}.navigationBarHidden(true)
Moments()
.tabItem{
//Add icon
Text("Moments")
}
}
}
}
我为您的情况使用TabView更新了my solution。相同的想法:您正在使用ZStack
和@State var selection
。想法是使用.opacity
和TabView
中的YourCameraView
(在我的示例中就是Image(systemName: "plus.circle")
):
struct TabViewModel: View {
@State var selection: Int = 0
var body: some View {
ZStack {
GeometryReader { geometry in
TabView(selection: self.$selection) {
Text("list")
.tabItem {
Image(systemName: "list.bullet.below.rectangle")
}.tag(0)
Text("plus")
.tabItem {
Image(systemName: "camera")
}.tag(1)
Text("more categories!")
.tabItem {
Image(systemName: "square.grid.2x2")
}.tag(2)
}
.opacity(self.selection == 1 ? 0.01 : 1)
Image(systemName: "plus.circle")
.resizable()
.frame(width: 60, height: 60)
.shadow(color: .gray, radius: 2, x: 0, y: 5)
.offset(x: geometry.size.width / 2 - 30, y: geometry.size.height - 80)
.onTapGesture {
self.selection = 0
}
.opacity(self.selection == 1 ? 1 : 0)
}
}
}
}
当您点击相机选项卡时,项目TabView
不可见