Приложение «Погода» на Apple Watch имеет эту кнопку в правом верхнем углу, с помощью которой можно переключать режим просмотра между «Условиями», «Температурой», «Осадками» и т. д. Что это за SwiftUI? Это пользовательский интерфейс с кнопкой?
Picker("View", selection: $selectedView) {
Text("Conditions").tag("Conditions")
Text("Temperature").tag("Temperature")
Text("Precipitation").tag("Precipitation")
}.pickerStyle(SegmentedPickerStyle())
Для этого вам может потребоваться создать собственный пользовательский интерфейс с использованием собственных кнопок.





Мне удалось приблизиться к интерфейсу приложения погоды, используя комбинацию InlinePickerStyle(), представленную внутри формы на листе.
Чтобы отобразить расположение кнопок, вам также необходимо встроить tabView в NavigationStack.
Предполагается, что вы в качестве цели создаете watchOS 10.
enum Tabs: String, CaseIterable, Identifiable {
case one = "Cold"
case two = "Warm"
case three = "Hot"
var id: Self { self }
}
struct ContentView: View {
@State var selected = Tabs.one
@State var sheetIsPresented = false
var body: some View {
NavigationStack {
TabView(selection: $selected) {
ForEach(Tabs.allCases) { item in
Text("\(item.rawValue) tab")
}
}
.tabViewStyle(.verticalPage)
.toolbar {
ToolbarItem(placement: .topBarTrailing) {
Button {
sheetIsPresented = true
} label: {
Image(systemName: "thermometer.medium")
}
.foregroundStyle(.white)
}
}
}
.sheet(isPresented: $sheetIsPresented, content: {
Form {
Picker("View", selection: $selected) {
ForEach(Tabs.allCases) { item in
Text(item.rawValue)
}
}
.pickerStyle(InlinePickerStyle())
.onChange(of: selected) {
sheetIsPresented = false
}
}
})
}
}
Я смог воспроизвести, как показано ниже, как дочерний элемент навигационного стека.
struct Example: View {
@State private var showSheet = false
var body: some View {
// ...
.toolbar {
ToolbarItem(placement: .topBarTrailing) {
Button {
showSheet.toggle()
} label: {
Image(systemName: "ellipsis")
}
}
}
.sheet(isPresented: $showSheet) {
List {
// ...
}
}
}
}
Это может быть
switchдля каждогоselectedView, второе фото простоMenu