SwiftUI HStack не продвинется на самый верх?

У меня есть Hstack с двумя компонентами. Одно - это раскрывающееся меню, а другое - навигационная ссылка на страницу «забыл пароль». Я не могу понять, почему он не доходит до самого верха страницы.

Я пробовал вставить Spacer () в самый низ (но в пределах) кода HStack (), он вообще не двигается. Я попытался разместить дополнительные объекты и текст ниже и посмотреть, будет ли он подталкиваться с помощью Spacer () под новым объектом, все равно не сдвинется с места.

var body: some View {

    VStack{
        NavigationView{

        HStack{
            DropDownNewUser()
            Spacer()
            NavigationLink(destination: ForgotPasswordView()) {
                Image(systemName: "questionmark")
                    .padding(15)
                    .background(lightgold)
                    .cornerRadius(50)
                    .foregroundColor(.white)
            }
        }.padding(10).edgesIgnoringSafeArea(.all)
    }
}

введите здесь описание изображения


person aloogobitings    schedule 16.05.2020    source источник
comment
Если вы поместите разделитель в HStack, вы просто повлияете на горизонтальное распределение. Разделитель должен быть в панели навигации или в стеке.   -  person Paulw11    schedule 17.05.2020


Ответы (1)


Поместите VStack с Spacer внутри, как показано ниже.

var body: some View {
  NavigationView{
     VStack{          // << here !!
        HStack{
            DropDownNewUser()
            Spacer()
            NavigationLink(destination: ForgotPasswordView()) {
                Image(systemName: "questionmark")
                    .padding(15)
                    .background(lightgold)
                    .cornerRadius(50)
                    .foregroundColor(.white)
            }
        }.padding(10).edgesIgnoringSafeArea(.all)
        Spacer()       // << here !!
    }
  }
}
person Asperi    schedule 17.05.2020
comment
Когда я это делаю, он не доходит до самого верха (но кнопки работают). Затем я исправляю это, применяя .padding (.top, 40) .edgesIgnoringSafeArea (.all) к VStack. Он работает, помещая его в верхнюю часть, но кнопки / раскрывающиеся списки больше не работают. Каким-нибудь образом обойти это? - person aloogobitings; 17.05.2020