Skip to content

Commit

Permalink
fix: ChartView 누락돼서 다시 올립니다
Browse files Browse the repository at this point in the history
  • Loading branch information
rriver2 committed Nov 6, 2022
1 parent 195f350 commit 2c9c67e
Show file tree
Hide file tree
Showing 3 changed files with 139 additions and 5 deletions.
134 changes: 134 additions & 0 deletions 2022/Playgrounds/ChartView.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
//
// ChartView.swift
// LetSwift
//
// Created by 이가은 on 2022/11/01.
//

import SwiftUI
import Charts

struct ChartView: View {
@StateObject var viewModel = ChartViewModel()

var body: some View {
TabView {
totalChart()
individualChart()
}
.tabViewStyle(PageTabViewStyle())
.indexViewStyle(PageIndexViewStyle(backgroundDisplayMode: .always))
}
}

extension ChartView {
@ViewBuilder
func totalChart() -> some View {
VStack(alignment: .leading) {
if let chartDataList = viewModel.totalChartDataList {
if #available(iOS 16.0, *) {
VStack(alignment: .leading) {
Text("Let’Swift 22 참여자 개발 성향")
.padding(.bottom, 30)
.font(.title)
Chart {
ForEach(chartDataList) { chartData in
if let question = TempChartData.questionList.first(where: { $0.surveyId == chartData.surveyId })?.question,
let answer = TempChartData.getCardCase(answerId: chartData.answerId)
{
BarMark(
x: .value("Category", answer.rawValue),
y: .value("Profit", chartData.count)
)
.foregroundStyle(by: .value("Product Category", question))
}
}
}
.frame(height: 500)
}
} else {
Text("iOS 16.0 부터 결과를 확인할 수 있습니다 :)")
}
} else {
#warning("이미지 넣기")
Text("로딩중...")
}
Spacer()
}
.padding(.top, 50)
.padding(.horizontal, 30)
}
@ViewBuilder
func individualChart() -> some View {
ScrollView(showsIndicators: false) {
VStack(alignment: .leading) {
Text("답변 전체 결과 보기")
.padding(.bottom, 30)
.font(.title)
if let chartData = viewModel.chartData {
if #available(iOS 16.0, *) {
ForEach(0..<chartData.surveyList.count, id: \.self) { index in
Text("\(index+1). \(TempChartData.getQuestionText(surveyId: index+1))")
.padding(.bottom, 20)
.font(.title3)
VStack(alignment: .leading) {
Chart {
ForEach(chartData.surveyList[index].answerList) { answer in
let answerText = TempChartData.getAnswerText(surveyId: index+1, answerId: answer.answerId)
if index == 0 {
BarMark(
x: .value("답변",answerText),
y: .value("응답수", answer.count)
)
.foregroundStyle(by: .value("답변", answerText))
} else if index == 1 {
PointMark (
x: .value("답변",answerText),
y: .value("응답수", answer.count)
)
.foregroundStyle(by: .value("답변", answerText))
} else if index == 2 {
LineMark (
x: .value("답변",answerText),
y: .value("응답수", answer.count)
)
} else if index == 3 {
RectangleMark (
x: .value("답변",answerText),
y: .value("응답수", answer.count)
)
.foregroundStyle(by: .value("답변", answerText))
} else {
AreaMark (
x: .value("답변",answerText),
y: .value("응답수", answer.count)
)
}
}
}
}
.frame(height: 150)
.padding(.bottom, 50)
}
}
else {
Text("iOS 16.0 부터 결과를 확인할 수 있습니다 :)")
}
}
else {
#warning("이미지 넣기")
Text("로딩중...")
}
}
.padding(.horizontal, 40)
.padding(.top, 50)
.padding(.bottom, 50)
}
}
}

//struct ChartView_Previews: PreviewProvider {
// static var previews: some View {
// ChartView()
// }
//}
2 changes: 1 addition & 1 deletion App/LetSwiftApp.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import UserNotifications
struct LetSwiftApp: App {
var body: some Scene {
WindowGroup {
ChartView()
MainView()
.accentColor(.themePrimary)
.onAppear {
UNUserNotificationCenter.requestLetSwiftNotification()
Expand Down
8 changes: 4 additions & 4 deletions LetSwift.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@
CC1E753E291512820016092D /* ChartMockData.json in Resources */ = {isa = PBXBuildFile; fileRef = CC1E753D291512820016092D /* ChartMockData.json */; };
CC2DCDC7291514FC00419AFC /* ChartViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC2DCDC6291514FC00419AFC /* ChartViewModel.swift */; };
CC2DCDC929151F8700419AFC /* SurveyData.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC2DCDC829151F8700419AFC /* SurveyData.swift */; };
CCEF707829114AC300239EC9 /* ChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCEF707729114AC300239EC9 /* ChartView.swift */; };
CC393F092917CA230008F0F4 /* ChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC393F082917CA230008F0F4 /* ChartView.swift */; };
CCFF977F29114CEF00BC5FD3 /* ChartDataModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCFF977E29114CEF00BC5FD3 /* ChartDataModel.swift */; };
/* End PBXBuildFile section */

Expand Down Expand Up @@ -319,7 +319,7 @@
CC1E753D291512820016092D /* ChartMockData.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = ChartMockData.json; sourceTree = "<group>"; };
CC2DCDC6291514FC00419AFC /* ChartViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChartViewModel.swift; sourceTree = "<group>"; };
CC2DCDC829151F8700419AFC /* SurveyData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SurveyData.swift; sourceTree = "<group>"; };
CCEF707729114AC300239EC9 /* ChartView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ChartView.swift; path = ../../../../Downloads/ChartView.swift; sourceTree = "<group>"; };
CC393F082917CA230008F0F4 /* ChartView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChartView.swift; sourceTree = "<group>"; };
CCFF977E29114CEF00BC5FD3 /* ChartDataModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChartDataModel.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */

Expand Down Expand Up @@ -679,7 +679,7 @@
6FD7CDAB290C030B002CF140 /* Playgrounds */ = {
isa = PBXGroup;
children = (
CCEF707729114AC300239EC9 /* ChartView.swift */,
CC393F082917CA230008F0F4 /* ChartView.swift */,
CC2DCDC6291514FC00419AFC /* ChartViewModel.swift */,
CCFF977E29114CEF00BC5FD3 /* ChartDataModel.swift */,
CC2DCDC829151F8700419AFC /* SurveyData.swift */,
Expand Down Expand Up @@ -1024,11 +1024,11 @@
16984E7B256A33AE0011C872 /* CalendarManager.swift in Sources */,
60E1766A256D4FBE0068B3F4 /* Event.swift in Sources */,
16DBE6A8256A279B00B334A3 /* ScheduleView.swift in Sources */,
CCEF707829114AC300239EC9 /* ChartView.swift in Sources */,
CC2DCDC929151F8700419AFC /* SurveyData.swift in Sources */,
16984E79256A33AC0011C872 /* GlobalAction.swift in Sources */,
A5EC7773256BE3730072E959 /* PeopleGroupedByRoleView.swift in Sources */,
6054DA7D256A9DBF00A49BD4 /* DateManager.swift in Sources */,
CC393F092917CA230008F0F4 /* ChartView.swift in Sources */,
1684F667257244F900A784C0 /* Bundle.swift in Sources */,
16DBE6CA256A2EC800B334A3 /* OSLog.swift in Sources */,
16984E76256A33970011C872 /* Safari.swift in Sources */,
Expand Down

0 comments on commit 2c9c67e

Please sign in to comment.