Добавление фона и составление окончательного вида
В заключительной части нашего проекта нам нужно добавить некоторые данные для управления цветами каждого фона и каждого CapsuleBar
.
Добавьте эти два массива, которые содержат цвета каждого набора данных:
private var dataBackgroundColor: [String: ColorRGB] = [ "Data1": ColorRGB(red: 44 / 255, green: 54 / 255, blue: 79 / 255), "Data2": ColorRGB(red: 76 / 255, green: 61 / 255, blue: 89 / 255), "Data3": ColorRGB(red: 56 / 255, green: 24 / 255, blue: 47 / 255) ] private var dataBarColor: [String: ColorRGB] = [ "Data1": ColorRGB(red: 222 / 255, green: 44 / 255, blue: 41 / 255), "Data2": ColorRGB(red: 42 / 255, green: 74 / 255, blue: 150 / 255), "Data3": ColorRGB(red: 47 / 255, green: 57 / 255, blue: 77 / 255) ]
Теперь, когда у нас есть цвета, нам нужно добавить фон к нашему основному виду.
Инкапсулируйте наши предыдущие представления в ZStack
в переменной body
ContentView
, , чтобы мы могли поместить наш цвет в фон:
var body: some View { ZStack { Color(.sRGB, red: self.dataBackgroundColor[dataPicker]!.red, green: self.dataBackgroundColor[dataPicker]!.green, blue: self.dataBackgroundColor[dataPicker]!.blue ).edgesIgnoringSafeArea(.all) .animation(.default) VStack { Text("Let's Graph!") .foregroundColor(.white) .font(.largeTitle) .fontWeight(.bold) .padding() Picker("", selection: $dataPicker) { Text("Data1").tag("Data1") Text("Data2").tag("Data2") Text("Data3").tag("Data3") }.pickerStyle(SegmentedPickerStyle()) .padding() } } }
Нам просто не хватает графика, который мы создадим, добавив CapsuleGraphView
к нашему ContentView
VStack
:
VStack { Text("Let's Graph!") .foregroundColor(.white) .font(.largeTitle) .fontWeight(.bold) .padding() Picker("", selection: $dataPicker) { Text("Data1").tag("Data1") Text("Data2").tag("Data2") Text("Data3").tag("Data3") }.pickerStyle(SegmentedPickerStyle()) .padding() CapsuleGraphView(data: data[dataPicker]!, maxValueInData: data[dataPicker]!.max()!, spacing: 24, capsuleColor: dataBarColor[dataPicker]!) }
Как видите, мы передаем наши данные в CapsuleGraphView
, который их отобразит.
Вы можете попробовать наш график прямо сейчас! Нажмите play в Live Preview и наслаждайтесь.