SwiftUI问题:将文本放在列表视图的下方(外部)

时间:2020-06-14 19:59:28

标签: swiftui swiftui-list

我正在尝试将此信息放在我的列表下方。我不希望它包含在列表中,而应该显示在视图背景中。有点像iOS 6中的旧设置。我尝试将代码段放置在不同的位置并删除堆栈snd,甚至更改我正在使用的堆栈,但我无法弄清楚。这是我的代码,并附上了屏幕快照https://i.stack.imgur.com/PcUgJ.png供参考。谢谢任何能帮助我的菜鸟自我的人。

我的代码:

import SwiftUI

struct SettingsAboutView: View {

    var body: some View {

         List{

            //Top Section
                Section {

                    HStack(spacing: 30) {

                    Spacer()

                            ZStack {

                                Rectangle()
                                    .frame(width: 50, height: 50)
                                    .clipShape(Rectangle())
                                    .shadow(radius: 2)
                                    .foregroundColor(Color("PineGlade"))

                                Image(systemName: "leaf.arrow.circlepath")
                                    .resizable()
                                    .frame(width: 25, height: 25)
                                    .clipShape(Rectangle())
                                    .foregroundColor(.white)


                            }.cornerRadius(10)

                            VStack(alignment: .leading) {

                                Text("Gardn")
                                    .font(.system(size: 32))
                                    .fontWeight(.bold)
                                    .foregroundColor(Color("ShipsOfficer"))



                                Text("OnlyOdds.co Labs")
                                    .font(.system(size: 13))
                                    .fontWeight(.medium)
                                    .foregroundColor(Color("ShipsOfficer"))

                            }

                    Spacer()

                    }.padding()

                    NavigationLink(destination: SettingsPrivacyView()) {

                            Button(action: {

                                print("Privacy Settings")

                            }) {

                                    SettingsCell(title: "Privacy", imgName: "eye.slash", clr: Color("PineGlade"))

                               }

                    }

                    NavigationLink(destination: SettingsNotificationsView()) {

                            Button(action: {

                                print("Notification Settings")

                            }) {

                                    SettingsCell(title: "Notifications", imgName: "bell", clr: Color("PineGlade"))

                                }

                    }

                }

            //Technical Info
                HStack(spacing: 62) {

                    Spacer()

                    Text("V \(UIApplication.appVersion!)")
                            .font(.system(size: 14))
                            .fontWeight(.light)
                            .foregroundColor(Color("ShipsOfficer"))
                            .opacity(0.5)


                        Text("Build  \(UIApplication.appBuild!)")
                            .font(.system(size: 14))
                            .fontWeight(.light)
                            .foregroundColor(Color("ShipsOfficer"))
                            .opacity(0.5)

                    Spacer()

                }

         }.listStyle(GroupedListStyle())
         .environment(\.horizontalSizeClass, .regular)
         .navigationBarTitle("Settings", displayMode: .inline)

    }

}

struct SettingsAboutView_Previews: PreviewProvider {

    static var previews: some View {

        SettingsAboutView()
    }

}

extension UIApplication {

    static var appVersion: String? {

        return Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String

    }

}

extension UIApplication {

    static var appBuild: String? {

        return Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as? String

    }

}

2 个答案:

答案 0 :(得分:1)

您正在寻找的是页脚。 Section View将Footer作为ViewBuilder作为参数。

Section(footer: Text("Your footer text")) {
    //Your Content here
}

您可以传递Text()或创建自己的自定义视图。

答案 1 :(得分:0)

只需将列表放入VStack并放入 文字(您的文字)

在列表下