【问题标题】:SwiftUI NavigationView layout issuesSwiftUI NavigationView 布局问题
【发布时间】:2020-07-09 20:23:54
【问题描述】:

在使用 SwiftUI 时,我的 NavigationView 和 Title 永远不会出现在我希望它们在设备或模拟器上运行时出现的位置。我希望它们几乎位于左上角的后退按钮下方,但是当在设备或模拟器上运行时,它会在页面下方很远,这是我的模拟器在预览旁边调整大小的屏幕截图,您可以看到这是多么不同.

这是我的代码:

import SwiftUI

struct DetailView: View {
    let tarot: Tarot
    var body: some View {
        NavigationView {
            VStack() {
                Image(tarot.tarotImage)
                    .resizable()
                    .aspectRatio(contentMode: .fill)
                    .frame(width: 200, height: 200)
                    .padding(.init(top: 80, leading: 30, bottom: 80, trailing: 30))
                Text(tarot.tarotDescription)
                    .padding(.horizontal)
            }
            .navigationBarTitle(tarot.tarotName, displayMode: .automatic)
        }
    }
}

struct DetailView_Previews: PreviewProvider {
    static var previews: some View {
        DetailView(tarot: cardsArray[0])
    }
}

【问题讨论】:

    标签: swiftui navigationbar navigationview


    【解决方案1】:

    您的导航堆栈中不应有多个NavigationView

    尝试从您的DetailView 中删除NavigationView

    struct DetailView: View {
        let tarot: Tarot
        var body: some View {
            VStack {
                Image(tarot.tarotImage)
                    .resizable()
                    .aspectRatio(contentMode: .fill)
                    .frame(width: 200, height: 200)
                    .padding(.init(top: 80, leading: 30, bottom: 80, trailing: 30))
                Text(tarot.tarotDescription)
                    .padding(.horizontal)
            }
            .navigationBarTitle(tarot.tarotName, displayMode: .automatic)
        }
    }
    

    【讨论】:

    • 这很好,谢谢!我没有意识到这已经为我添加了一个
    猜你喜欢
    • 2021-08-22
    • 2021-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    • 2020-09-21
    • 2020-05-01
    相关资源
    最近更新 更多