为什么swiftui的导航视图栏这么大?
Why is the navigation view bar so large in swiftui?
import SwiftUI
struct SecondView: View {
var ResearchMCQ: Question
//Creating Variables for Revision Topics
@State private var setOptionOne = false
@State private var setOptionTwo = false
@State private var setOptionThree = false
//User Home Page View
var body: some View {
//Allows for Navigation and Scrolling
NavigationView {
ScrollView{
//App Logo and Vertical Stacks
VStack(spacing: 1.0) {
Image("AppLogo")
.resizable()
.scaledToFit()
.padding(.trailing, 50.0)
.frame(height: 100, alignment: .topLeading)
Spacer()
Spacer()
//Multiple Choice Question Appears
Group {
Text(ResearchMCQ.question)
.padding(.trailing, 4)
Spacer()
Spacer()
//Ensures Only One Answer Can Be Selected
let OptionOne = Binding<Bool>(get: { self.setOptionOne }, set: { self.setOptionOne = [=10=]; self.setOptionTwo = false; self.setOptionThree = false })
let OptionTwo = Binding<Bool>(get: { self.setOptionTwo }, set: { self.setOptionOne = false; self.setOptionTwo = [=10=]; self.setOptionThree = false })
let OptionThree = Binding<Bool>(get: { self.setOptionThree }, set: { self.setOptionOne = false; self.setOptionTwo = false; self.setOptionThree = [=10=] })
//Shows User MCQ Options
VStack {
Toggle(ResearchMCQ.options[0], isOn: OptionOne)
.toggleStyle(.button)
.tint(Color(.gray))
.foregroundColor(Color("Black-White"))
Toggle(ResearchMCQ.options[1], isOn: OptionTwo)
.toggleStyle(.button)
.tint(Color(.gray))
.foregroundColor(Color("Black-White"))
Toggle(ResearchMCQ.options[2], isOn: OptionThree)
.toggleStyle(.button)
.tint(Color(.gray))
.foregroundColor(Color("Black-White"))
}
}
}
// .padding(.top, -150)
}
}
//Allows Navigation Through Pages
.navigationTitle("")
.padding(.top, -100)
}
}
Shows large navigation bar
我正在尝试创建一个导航栏,但我希望它是空的,因此代码中的引号是空的。关于如何缩小它的任何想法,因为当我向上滚动时,如图所示,导航栏占据了页面的很大一部分。作为第一次 swift 编码器,任何帮助将不胜感激!!!
您只需要一个 NavigationView。我想您的 FirstView 中也有一个 NavigationView。这已经足够了,因为这个顶级 NavigationView 将包含您所有的更深层次的视图。
所以您的 SecondView 中不需要 NavigationView {}
。它仅在您的 FirstView 中需要。只需将它从您的 SecondView 中删除,您就会有一个更小的导航栏。
另外 .navigationTitle("")
应该 在 您的 NavigationView 中,而不是作为其自身的修饰符 :
struct FirstView: View {
var body: some View {
NavigationView {
NavigationLink("second View", destination: SecondView())
.navigationTitle("")
}
}
}
我已经修改了你的代码,因为我没有问题 class/struct,但它应该与你的代码一样工作
struct SecondView: View {
var body: some View {
// I removed the NavigationView that was there
ScrollView{
VStack {
Text("Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.")
Toggle("Toogle1", isOn: .constant(true))
Toggle("Toogle2", isOn: .constant(false))
Toggle("Toogle3", isOn: .constant(true))
}
}.navigationTitle("")
}
}
结果:
import SwiftUI
struct SecondView: View {
var ResearchMCQ: Question
//Creating Variables for Revision Topics
@State private var setOptionOne = false
@State private var setOptionTwo = false
@State private var setOptionThree = false
//User Home Page View
var body: some View {
//Allows for Navigation and Scrolling
NavigationView {
ScrollView{
//App Logo and Vertical Stacks
VStack(spacing: 1.0) {
Image("AppLogo")
.resizable()
.scaledToFit()
.padding(.trailing, 50.0)
.frame(height: 100, alignment: .topLeading)
Spacer()
Spacer()
//Multiple Choice Question Appears
Group {
Text(ResearchMCQ.question)
.padding(.trailing, 4)
Spacer()
Spacer()
//Ensures Only One Answer Can Be Selected
let OptionOne = Binding<Bool>(get: { self.setOptionOne }, set: { self.setOptionOne = [=10=]; self.setOptionTwo = false; self.setOptionThree = false })
let OptionTwo = Binding<Bool>(get: { self.setOptionTwo }, set: { self.setOptionOne = false; self.setOptionTwo = [=10=]; self.setOptionThree = false })
let OptionThree = Binding<Bool>(get: { self.setOptionThree }, set: { self.setOptionOne = false; self.setOptionTwo = false; self.setOptionThree = [=10=] })
//Shows User MCQ Options
VStack {
Toggle(ResearchMCQ.options[0], isOn: OptionOne)
.toggleStyle(.button)
.tint(Color(.gray))
.foregroundColor(Color("Black-White"))
Toggle(ResearchMCQ.options[1], isOn: OptionTwo)
.toggleStyle(.button)
.tint(Color(.gray))
.foregroundColor(Color("Black-White"))
Toggle(ResearchMCQ.options[2], isOn: OptionThree)
.toggleStyle(.button)
.tint(Color(.gray))
.foregroundColor(Color("Black-White"))
}
}
}
// .padding(.top, -150)
}
}
//Allows Navigation Through Pages
.navigationTitle("")
.padding(.top, -100)
}
}
Shows large navigation bar
我正在尝试创建一个导航栏,但我希望它是空的,因此代码中的引号是空的。关于如何缩小它的任何想法,因为当我向上滚动时,如图所示,导航栏占据了页面的很大一部分。作为第一次 swift 编码器,任何帮助将不胜感激!!!
您只需要一个 NavigationView。我想您的 FirstView 中也有一个 NavigationView。这已经足够了,因为这个顶级 NavigationView 将包含您所有的更深层次的视图。
所以您的 SecondView 中不需要 NavigationView {}
。它仅在您的 FirstView 中需要。只需将它从您的 SecondView 中删除,您就会有一个更小的导航栏。
另外 .navigationTitle("")
应该 在 您的 NavigationView 中,而不是作为其自身的修饰符 :
struct FirstView: View {
var body: some View {
NavigationView {
NavigationLink("second View", destination: SecondView())
.navigationTitle("")
}
}
}
我已经修改了你的代码,因为我没有问题 class/struct,但它应该与你的代码一样工作
struct SecondView: View {
var body: some View {
// I removed the NavigationView that was there
ScrollView{
VStack {
Text("Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.")
Toggle("Toogle1", isOn: .constant(true))
Toggle("Toogle2", isOn: .constant(false))
Toggle("Toogle3", isOn: .constant(true))
}
}.navigationTitle("")
}
}
结果: