SwiftUI Question: Place text underneath(outside) of list view

Viewed 533

I am trying to place this information underneath my list. I don't want it to be included in the list but rather it should be displayed on the view background. Sort of like the old settings in iOS 6. I've tried placing my code snippets in different spots and removing stacks snd even changing what stacks I'm using and I cant figure it out. Heres my code and I attached a screenshot https://i.stack.imgur.com/PcUgJ.png for reference. Thank you to anyone who can help my noob self.

My Code:

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 Answers

What you are looking for is a Footer. The Section View takes Footer as ViewBuilder as argument.

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

You can pass Text() or create your own custom view.

Just put the List in a VStack and put Text(yourtext)

Under the list

Related