В SwiftUI, как поместить вкладки в TabbedView в верхней части представления? - PullRequest
0 голосов
/ 07 июня 2019

У меня есть представление с вкладками внизу, у одного из views есть subviews, чтобы визуально отделить логику, я помещаю вкладки подпредставления в верхней части представления со следующим кодом, и это работает отлично:

self.tabbar.frame = CGRect( x: 0,
                            y: view.safeAreaInsets.top,
                            width: self.view.frame.size.width,
                            height: 50)

Как мне сделать это в SwiftUI?

1 Ответ

0 голосов
/ 12 июня 2019

Для этого вы можете создать представление вкладок в виде контейнера отдельных вкладок примерно так ...

struct TabbedView: View {

    @State private var selectedTab: Int = 0

    var body: some View {
        VStack {
            SegmentedControl(selection: $selectedTab) {
                Text("First").tag(0)
                Text("Second").tag(1)
                Text("Third").tag(2)
            }

            if seletcedTab == 0 {
                FirstTabView()
            } else if selectedTab == 1 {
                SecondTabView()
            } else {
                ThirdTabView()
            }
        }
    }
}

При этом вы условно заполняете «закладку» на основе значения сегментированного элемента управления.

Используя @State и $selectedTab, сегментированный элемент управления обновит значение selectedTab, а затем повторно отобразит представление, которое заменит страницу на основе нового значения selectedTab.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...