Лист настраиваемых действий с SwiftUI - PullRequest
0 голосов
/ 20 июня 2020

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

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

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

custom action sheet

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

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

Спасибо

1 Ответ

0 голосов
/ 20 июня 2020
Подход

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

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

enter image description here

Реализация:

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)
        }
    }
}
...