diff --git a/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/back_new.imageset/Contents.json b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/back_new.imageset/Contents.json new file mode 100644 index 0000000..d5225cd --- /dev/null +++ b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/back_new.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "arrow_back_ios_24dp_5F6368_FILL1_wght400_GRAD0_opsz24 1.svg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "arrow_back_ios_24dp_5F6368_FILL1_wght400_GRAD0_opsz24 1@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "arrow_back_ios_24dp_5F6368_FILL1_wght400_GRAD0_opsz24 1@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/back_new.imageset/arrow_back_ios_24dp_5F6368_FILL1_wght400_GRAD0_opsz24 1.svg b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/back_new.imageset/arrow_back_ios_24dp_5F6368_FILL1_wght400_GRAD0_opsz24 1.svg new file mode 100644 index 0000000..f235eb6 --- /dev/null +++ b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/back_new.imageset/arrow_back_ios_24dp_5F6368_FILL1_wght400_GRAD0_opsz24 1.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/back_new.imageset/arrow_back_ios_24dp_5F6368_FILL1_wght400_GRAD0_opsz24 1@2x.png b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/back_new.imageset/arrow_back_ios_24dp_5F6368_FILL1_wght400_GRAD0_opsz24 1@2x.png new file mode 100644 index 0000000..f089649 Binary files /dev/null and b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/back_new.imageset/arrow_back_ios_24dp_5F6368_FILL1_wght400_GRAD0_opsz24 1@2x.png differ diff --git a/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/back_new.imageset/arrow_back_ios_24dp_5F6368_FILL1_wght400_GRAD0_opsz24 1@3x.png b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/back_new.imageset/arrow_back_ios_24dp_5F6368_FILL1_wght400_GRAD0_opsz24 1@3x.png new file mode 100644 index 0000000..a0a4ef6 Binary files /dev/null and b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/back_new.imageset/arrow_back_ios_24dp_5F6368_FILL1_wght400_GRAD0_opsz24 1@3x.png differ diff --git a/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/right_shavron_new.imageset/Contents.json b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/right_shavron_new.imageset/Contents.json new file mode 100644 index 0000000..df240cf --- /dev/null +++ b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/right_shavron_new.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "Vector.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "Vector@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "Vector@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/right_shavron_new.imageset/Vector.png b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/right_shavron_new.imageset/Vector.png new file mode 100644 index 0000000..3087216 Binary files /dev/null and b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/right_shavron_new.imageset/Vector.png differ diff --git a/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/right_shavron_new.imageset/Vector@2x.png b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/right_shavron_new.imageset/Vector@2x.png new file mode 100644 index 0000000..e850714 Binary files /dev/null and b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/right_shavron_new.imageset/Vector@2x.png differ diff --git a/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/right_shavron_new.imageset/Vector@3x.png b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/right_shavron_new.imageset/Vector@3x.png new file mode 100644 index 0000000..e7e25ee Binary files /dev/null and b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/right_shavron_new.imageset/Vector@3x.png differ diff --git a/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/xmark_new.imageset/Contents.json b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/xmark_new.imageset/Contents.json new file mode 100644 index 0000000..df240cf --- /dev/null +++ b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/xmark_new.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "Vector.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "Vector@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "Vector@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/xmark_new.imageset/Vector.png b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/xmark_new.imageset/Vector.png new file mode 100644 index 0000000..9f4f24d Binary files /dev/null and b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/xmark_new.imageset/Vector.png differ diff --git a/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/xmark_new.imageset/Vector@2x.png b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/xmark_new.imageset/Vector@2x.png new file mode 100644 index 0000000..72367bf Binary files /dev/null and b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/xmark_new.imageset/Vector@2x.png differ diff --git a/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/xmark_new.imageset/Vector@3x.png b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/xmark_new.imageset/Vector@3x.png new file mode 100644 index 0000000..a25877e Binary files /dev/null and b/Genti_iOS/Genti_iOS/DesignSystem/Assets.xcassets/xmark_new.imageset/Vector@3x.png differ diff --git a/Genti_iOS/Genti_iOS/DesignSystem/Modifiers/AddXmarkModifier.swift b/Genti_iOS/Genti_iOS/DesignSystem/Modifiers/AddXmarkModifier.swift index b5b4652..9ba1d1a 100644 --- a/Genti_iOS/Genti_iOS/DesignSystem/Modifiers/AddXmarkModifier.swift +++ b/Genti_iOS/Genti_iOS/DesignSystem/Modifiers/AddXmarkModifier.swift @@ -17,10 +17,10 @@ struct AddXmarkModifier: ViewModifier { content .frame(maxWidth: .infinity, maxHeight: .infinity) .overlay(alignment: .topTrailing) { - Image(.xmarkEmpty) + Image(.xmarkNew) .resizable() .aspectRatio(contentMode: .fit) - .frame(width: 29, height: 29) + .frame(width: 14, height: 14) .padding(7) .onTapGesture { xmarkTap?() diff --git a/Genti_iOS/Genti_iOS/Presentation/PhotoDetail/View/PhotoDetailWithShareView.swift b/Genti_iOS/Genti_iOS/Presentation/PhotoDetail/View/PhotoDetailWithShareView.swift index f97f02c..06619ec 100644 --- a/Genti_iOS/Genti_iOS/Presentation/PhotoDetail/View/PhotoDetailWithShareView.swift +++ b/Genti_iOS/Genti_iOS/Presentation/PhotoDetail/View/PhotoDetailWithShareView.swift @@ -15,14 +15,12 @@ struct PhotoDetailWithShareView: View { var body: some View { VStack(spacing: 20) { Rectangle() - .fill(.clear) .aspectRatio(1/1.5, contentMode: .fit) .overlay(alignment: .center) { WebImage(url: URL(string: viewModel.state.imageUrl)) { image in image .resizable() .aspectRatio(contentMode: .fit) - .addDownloadButton { self.viewModel.sendAction(.downloadButtonTap(from: .detailWithShare)) } } placeholder: { Image(uiImage: UIImage(resource: .camera)) } @@ -30,16 +28,37 @@ struct PhotoDetailWithShareView: View { self.viewModel.sendAction(.imageLoad(image)) } } - .padding(.horizontal, 30) - - ShareLink(item: viewModel.getImage, preview: .init("내 사진", image: viewModel.getImage)) { - Text("공유하기") - .shareStyle() - } - .onTapGesture { - viewModel.sendAction(.shareButtonTap) + } + .frame(maxHeight: .infinity) + .overlay(alignment: .bottom) { + HStack { + ShareLink(item: viewModel.getImage, preview: .init("내 사진", image: viewModel.getImage)) { + Text("공유하기") + .pretendard(.subtitle2_16_bold) + .frame(height: 48) + .frame(maxWidth: .infinity) + .foregroundStyle(.geintiBackground) + .background(LinearGradient.gentiGradation) + .cornerRadius(10, corners: .allCorners) + } + .onTapGesture { + viewModel.sendAction(.shareButtonTap) + } + + Text("저장하기") + .pretendard(.subtitle2_16_bold) + .frame(height: 48) + .frame(maxWidth: .infinity) + .background(.white) + .foregroundStyle(.geintiBackground) + .cornerRadius(10, corners: .allCorners) + .onTapGesture { + self.viewModel.sendAction(.downloadButtonTap(from: .detailWithShare)) + } } - + .padding(.horizontal, 16) + .padding(.bottom, 1) + } .addXmark(top: 3, trailing: 20) { viewModel.sendAction(.xmarkTap) diff --git a/Genti_iOS/Genti_iOS/Presentation/Setting/View/SettingRow.swift b/Genti_iOS/Genti_iOS/Presentation/Setting/View/SettingRow.swift index 8cf5d8c..4ea6cb7 100644 --- a/Genti_iOS/Genti_iOS/Presentation/Setting/View/SettingRow.swift +++ b/Genti_iOS/Genti_iOS/Presentation/Setting/View/SettingRow.swift @@ -14,11 +14,17 @@ struct SettingRow: View { var body: some View { Text(title) - .pretendard(.normal) - .foregroundStyle(.black) - .frame(height: 40) + .pretendard(.subtitle2_16_bold) + .foregroundStyle(.white) + .frame(height: 48) .frame(maxWidth: .infinity, alignment: .leading) - .padding(.leading, 20) + .overlay(alignment: .trailing) { + Image(.rightShavronNew) + .resizable() + .aspectRatio(contentMode: .fit) + .frame(width: 9, height: 15) + } + .padding(.horizontal, 16) .background(.black.opacity(0.001)) .onTapGesture { rowTapped?() diff --git a/Genti_iOS/Genti_iOS/Presentation/Setting/View/SettingView.swift b/Genti_iOS/Genti_iOS/Presentation/Setting/View/SettingView.swift index f8bd0aa..d809728 100644 --- a/Genti_iOS/Genti_iOS/Presentation/Setting/View/SettingView.swift +++ b/Genti_iOS/Genti_iOS/Presentation/Setting/View/SettingView.swift @@ -17,13 +17,22 @@ struct SettingView: View { var body: some View { ZStack(alignment: .top) { - backgroundView() + Color.geintiBackground + .ignoresSafeArea() VStack(spacing: 4) { headerView() + infoView() + + Rectangle() + .fill(.white.opacity(0.3)) + .frame(maxWidth: .infinity) + .frame(height: 1) + .padding(.horizontal, 16) + .padding(.vertical, 18) + userView() Spacer() - footerView() } //:VSTACK if viewModel.state.isLoading { LoadingView() @@ -34,32 +43,29 @@ struct SettingView: View { .toolbar(.hidden, for: .tabBar) } - private func backgroundView() -> some View { - Color.geintiBackground - .ignoresSafeArea() - } - private func headerView() -> some View { - RoundedRectangle(cornerRadius: 15) - .fill(.green3) - .frame(height: 100) - .overlay(alignment: .bottomLeading) { - Text("설정 및 개인정보") - .pretendard(.normal) - .foregroundStyle(.gray3) - .padding(.bottom, 17) - .padding(.leading, 40) - } - .overlay(alignment: .topLeading) { - Image("Back_fill") - .resizable() - .frame(width: 29, height: 29) - .padding(.leading, 30) - .padding(.top, 16) - .onTapGesture { - self.viewModel.sendAction(.backButtonTap) - } + + Text("설정") + .pretendard(.subtitle1_18_bold) + .foregroundStyle(.white) + .frame(maxWidth: .infinity) + .frame(height: 44) + .overlay(alignment: .center) { + HStack(alignment: .center) { + Image(.backNew) + .resizable() + .aspectRatio(contentMode: .fit) + .frame(width: 24, height: 24) + .onTapGesture { + self.viewModel.sendAction(.backButtonTap) + } + + Spacer() + } + } + .padding(.horizontal, 16) + .padding(.top, 16) } private func infoView() -> some View { VStack(spacing: 0) { @@ -76,49 +82,40 @@ struct SettingView: View { } Text("앱 버전 정보") - .pretendard(.normal) - .foregroundStyle(.black) - .frame(height: 40) + .pretendard(.subtitle2_16_bold) + .foregroundStyle(.white) + .frame(height: 48) .frame(maxWidth: .infinity, alignment: .leading) .overlay(alignment: .trailing) { Text(AppStoreCheck.appVersion ?? "1.0.0") .pretendard(.normal) .foregroundStyle(.gray3) } - .padding(.leading, 20) + .padding(.horizontal, 16) } - .padding(20) - .background(.gray6) - .clipShape(.rect(cornerRadius: 15)) } private func userView() -> some View { VStack(spacing: 0) { - SettingRow(title: "로그아웃") { - self.viewModel.sendAction(.logoutRowTap) - } - + Text("로그아웃") + .pretendard(.subtitle2_16_bold) + .foregroundStyle(.gentiGreenNew) + .frame(height: 48) + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 16) + .onTapGesture { + self.viewModel.sendAction(.logoutRowTap) + } Text("회원탈퇴") - .pretendard(.normal) - .foregroundStyle(.gray3) - .frame(height: 40) + .pretendard(.subtitle2_16_bold) + .foregroundStyle(.white.opacity(0.6)) + .frame(height: 48) .frame(maxWidth: .infinity, alignment: .leading) - .padding(.leading, 20) - .background(.gray6) + .padding(.horizontal, 16) .onTapGesture { self.viewModel.sendAction(.resignRowTap) } } - .padding(20) - .background(.gray6) - .clipShape(.rect(cornerRadius: 15)) - } - private func footerView() -> some View { - Image("Genti_LOGO") - .resizable() - .aspectRatio(contentMode: .fit) - .frame(height: 38) - .padding(.bottom, 10) } }