我正在尝试在 SwiftUI 中创建视图。在预览中,它看起来应该如此,但是在我的 iPhone(或实时预览)上运行时,它看起来像是偏移了。
我试图将填充设置为 -150,但随后 TextField 不响应触摸。
VStack {
Text("Name:")
.padding(.bottom, 1)
TextField($name)
.padding(.horizontal, 25.0)
.textFieldStyle(.roundedBorder)
.frame(maxWidth: 500)
Text("Image:")
.padding(.top, 1)
Image(uiImage: image!)
.resizable(capInsets: EdgeInsets(), resizingMode: .stretch)
.scaledToFit()
.frame(width: 250, height: 250)
.clipShape(RoundedRectangle(cornerRadius: 10))
.padding(.top, 5)
Button(action: {
withAnimation {
self.showImagePicker = true
}
}) {
Text("Select Image")
.color(.init(red: 20/255, green: 146/255, blue: 81/255))
}
Button(action: {
let list = LSList( title: self.name,
image: self.image!,
id: 0)
list.add()
self.userData.listsData.append(list)
}) {
Text("Add List")
.color(.white)
.font(.system(size: 25))
.bold()
.padding(.horizontal, 7) …Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个使用 SwiftUI 的 iOS 项目。我有 3 个页面(MainMenu、CalendarList 和 DateDetails。)
在第二页(CalenderList)上,屏幕顶部和实际的 NavigationBarTitle 之间有一个空白区域。

在第三页上,您可以看到后退按钮(返回主菜单),并且顶部有两个空白区域。

我见过人们使用 .navigationBarHidden 来解决这个问题,但我无法以解决问题的方式实现它。
我是否错误地使用了 NavigationView() ?或者有什么特殊的技巧吗?
这是主菜单的代码:
import SwiftUI
struct MainMenu: View {
var body: some View {
NavigationView {
VStack {
Text("Calendar")
.font(.largeTitle)
.fontWeight(.heavy)
.foregroundColor(Color(red: 0.055, green: 0.173, blue: 0.322))
.padding(.top, 55.0)
Text("Main Menu")
.font(.headline)
.foregroundColor(Color(red: 0.635, green: 0.635, blue: 0.635, opacity: 1.0))
/*Image("Logo")
.resizable()
.frame(width: 150.0, height: 150.0)*/
Spacer()
HStack {
NavigationLink(destination: CalendarList()) {
Image(systemName: "calendar")
.resizable()
.frame(width: 75.0, height: 75.0)
.padding()
} …Run Code Online (Sandbox Code Playgroud) 似乎当放置在 NavigationView 中时,VStacks 不会填充整个垂直空间。或者也许我做错了什么?
var body: some View {
NavigationView {
VStack(alignment: .leading) {
Text("HEY")
}
.frame(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)
.background(.gray)
}
.navigationBarTitle("Reçu", displayMode: .inline)
}
Run Code Online (Sandbox Code Playgroud)
我还定制UINavigationBar了一些颜色并设置navigationBarTitle为内联。
我尝试了两种解决方法:
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity, alignment: Alignment.topLeading) .frame(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)第一个填充更多的垂直空间,但不是全部。
我有一个非常简单的视图、背景颜色和一些文本。但是当我将它包装在 NavigationView 中时,我在视图顶部出现了不需要的间距。我怎样才能消除这个问题?(我想要导航,因为我将添加导航链接)
例如
var body: some View {
NavigationView {
ZStack(alignment: .leading) {
Rectangle()
.fill(
LinearGradient(
gradient: Gradient(colors: [.indigo, .purple]),
startPoint: .bottom,
endPoint: .top
)
)
.ignoresSafeArea()
VStack {
Text("Test")
Spacer()
}
}
}
}
Run Code Online (Sandbox Code Playgroud)