Ios 在SwiftUI中隐藏特定页面上的选项卡栏
我在应用程序中使用相机。该应用程序允许您在SwiftUI中的Ios 在SwiftUI中隐藏特定页面上的选项卡栏,ios,swiftui,tabview,Ios,Swiftui,Tabview,我在应用程序中使用相机。该应用程序允许您在SwiftUI中的选项卡视图的帮助下导航到此摄像头视图。但是,问题是,当我在摄影机视图上时,我想将选项卡视图隐藏起来。到目前为止,我一直在努力寻找解决方案,但似乎找不到任何解决方案 这是一个 注意:如果预览失败,屏幕截图将包含图像。当我在真实设备上运行相机时,它工作正常。问题是我需要在进入相机视图后隐藏选项卡栏 下面是我正在使用的代码示例: import SwiftUI struct AppView: View { var body: some
选项卡视图
的帮助下导航到此摄像头视图。但是,问题是,当我在摄影机视图上时,我想将选项卡视图隐藏起来。到目前为止,我一直在努力寻找解决方案,但似乎找不到任何解决方案
这是一个
注意:如果预览失败,屏幕截图将包含图像。当我在真实设备上运行相机时,它工作正常。问题是我需要在进入相机视图后隐藏选项卡栏
下面是我正在使用的代码示例:
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更新了你的情况。同样的想法:您正在使用ZStack
和@State-var-selection
。其思想是使用选项卡视图的.opacity
和您的CameraView
(在我的示例中,这只是图像(系统名:“plus.circle”)
:
struct选项卡视图模型:视图{
@状态变量选择:Int=0
var body:一些观点{
ZStack{
GeometryReader{中的几何体
选项卡视图(选择:自。$selection){
文本(“列表”)
.tabItem{
图像(系统名称:“列表.项目符号.下方.矩形”)
}.tag(0)
文本(“加”)
.tabItem{
图像(系统名称:“摄像头”)
}.标签(1)
文本(“更多类别!”)
.tabItem{
图像(系统名称:“square.grid.2x2”)
}.标签(2)
}
.不透明度(自选==1?0.01:1)
图像(系统名称:“plus.circle”)
.可调整大小()
.框架(宽60,高60)
.阴影(颜色:灰色,半径:2,x:0,y:5)
.偏移(x:geometry.size.width/2-30,y:geometry.size.height-80)
.ontapsigne{
self.selection=0
}
.不透明度(自选==1?1:0)
}
}
}
}
当您点击相机选项卡ItemTabView
不可见时您可以根据需要尝试以下代码
struct MomentsCam: View {
var body: some View {
Text("Cam")
}
}
struct Moments: View {
var body: some View {
Text("Moments Cam")
}
}
struct AppView: View {
@State var showCamera = false
var body: some View {
GeometryReader{ p in
ZStack{
TabView{
Home()
.tabItem {
// Add icon
Text("Home")
}
Text("holder")
.tabItem {
// Add icon
Text("Camera")
}.navigationBarHidden(true).onAppear{
self.showCamera = true
print(p.size)
}
Moments()
.tabItem{
//Add icon
Text("Moments")
}
}
if self.showCamera{
MomentsCam().frame(width: p.size.width, height: p.size.height).background(Color.white)
}
}
}
}
}
与其提供代码的屏幕截图,不如在这个问题中提供实际的代码。否则,您将被否决,我选择关闭此项,直到您这样做。我已添加了一份代码副本。