Лист настраиваемых действий с SwiftUI

У меня есть TabView в верхней части навигации и вкладка, содержащая профиль пользователя.

Я хочу представить лист действий с индивидуальным стилем, когда пользователи касаются обложки / изображения профиля.

Пользовательский стиль выглядит так:

лист настраиваемых действий

Я уже пытаюсь прикрепить второй вид внизу ZStack, но TabView всегда смотрит вперед.

Как я могу настроить лист действий или как скрыть TabView?

Спасибо


person Elvin    schedule 20.06.2020    source источник
comment
Ознакомьтесь с github.com/AndreaMiotto/PartialSheet   -  person Dscyre Scotti    schedule 20.06.2020


Ответы (1)


ZStack подход будет работать в этом сценарии.

Я пробовал на небольшом примере, вы можете настроить его, попытаться вписаться в свой проект и посмотреть, работает ли он.

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

Реализация :

struct ContentView: View {
    @State var showingCustomSheet = false
    var body: some View {
        ZStack {
            VStack {
                Button(action: {
                     withAnimation {
                        self.showingCustomSheet.toggle()
                    }
                }) {
                    Text("Show Custom sheet")
                }
            }

            ZStack {
                HStack(alignment: .bottom) {
                    Spacer()
                    VStack (alignment: .leading, spacing: 10) {
                        Spacer()
                        Button(action: {}) { Text("Delete photo") }
                        Button(action: {}) { Text("Take photo") }
                        Button(action: {}) { Text("Choose photo") }
                        Button(action: {
                            withAnimation {
                                self.showingCustomSheet.toggle()
                            }
                        }) { Text("Cancel") }
                    }
                    Spacer()
                }
            }.background(Color.black.opacity(0.1))
               .edgesIgnoringSafeArea(.all)
               .offset(x:0, y: self.showingCustomSheet ? 0 : UIApplication.shared.keyWindow?.frame.height ?? 0)
        }
    }
}
person Amit    schedule 20.06.2020
comment
Проблема заключается в элементе ZStack, который находится за TabView. Вы знаете, можно ли заставить его быть выше TabView? - person Elvin; 20.06.2020
comment
Вам будет легко помочь, если поделитесь тем, что пробовали. Обновите свой вопрос, указав свою реализацию. - person Amit; 21.06.2020