From 6f7f8deda14a80d198d1951e521293a08f6b0501 Mon Sep 17 00:00:00 2001 From: Jason Date: Thu, 25 Jan 2024 17:50:40 +0800 Subject: [PATCH] update --- .DS_Store | Bin 6148 -> 6148 bytes demo.xcodeproj/project.pbxproj | 50 +++- .../UserInterfaceState.xcuserstate | Bin 103946 -> 115379 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 6 + demo/Components/GoodsCard.swift | 43 ++-- demo/Components/UserAccountCard.swift | 12 +- demo/Views/Home/HomeView.swift | 140 +++++------ demo/Views/Layouts/NavigationPageView.swift | 34 +++ demo/Views/Layouts/TabBarView.swift | 83 +++---- demo/Views/Mall/GoodsDetailView.swift | 6 +- demo/Views/Message/MessageDetailView.swift | 22 ++ demo/Views/Message/MessageView.swift | 12 +- demo/Views/User/Account/AccountView.swift | 2 +- demo/Views/User/Info/UserAvatarView.swift | 54 +++++ demo/Views/User/Info/UserInfoView.swift | 24 ++ demo/Views/User/Info/UserNicknameView.swift | 18 ++ demo/Views/User/Order/OrdersView.swift | 6 +- demo/Views/User/UserView.swift | 217 ++++++++++++------ demo/demoApp.swift | 2 +- 19 files changed, 530 insertions(+), 201 deletions(-) create mode 100644 demo.xcodeproj/xcuserdata/jason.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 demo/Views/Layouts/NavigationPageView.swift create mode 100644 demo/Views/Message/MessageDetailView.swift create mode 100644 demo/Views/User/Info/UserAvatarView.swift create mode 100644 demo/Views/User/Info/UserInfoView.swift create mode 100644 demo/Views/User/Info/UserNicknameView.swift diff --git a/.DS_Store b/.DS_Store index 42f494df9de7e007ef39a0ace41f18b9fb7fe61f..517346e38ff15c84ecc71ca7b5d7996381b42c9f 100644 GIT binary patch delta 70 zcmZoMXffDe$;ixP^L26oqtfI!MlLqZifzl~HcrlC)I%_p_zN-&gOl@f3m8CvX~O1* QjB0EX8~8S}bNuB802%2O{{R30 delta 70 zcmZoMXffDe$;iz3egEVFMy1Jdj9hGDhvP3kTt7LFQ4hgX;xEWB3{K9^EnolvCWFln Q8P(V(Ht=m`=lIJH0CfZxy8r+H diff --git a/demo.xcodeproj/project.pbxproj b/demo.xcodeproj/project.pbxproj index 6d42de8..765919c 100644 --- a/demo.xcodeproj/project.pbxproj +++ b/demo.xcodeproj/project.pbxproj @@ -38,6 +38,11 @@ 968A6FB42B610C67008609EE /* KillCountDown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 968A6FB32B610C67008609EE /* KillCountDown.swift */; }; 968A6FB62B6113BE008609EE /* UserAccountCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 968A6FB52B6113BE008609EE /* UserAccountCard.swift */; }; 968A6FB82B6113FF008609EE /* UserAccountCardModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 968A6FB72B6113FF008609EE /* UserAccountCardModel.swift */; }; + 96E93E972B621CF6004AB649 /* UserInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E93E962B621CF6004AB649 /* UserInfoView.swift */; }; + 96E93E9B2B622931004AB649 /* UserAvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E93E9A2B622931004AB649 /* UserAvatarView.swift */; }; + 96E93E9D2B622D00004AB649 /* NavigationPageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E93E9C2B622D00004AB649 /* NavigationPageView.swift */; }; + 96E93E9F2B62305F004AB649 /* UserNicknameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E93E9E2B62305F004AB649 /* UserNicknameView.swift */; }; + 96E93EA12B623D4E004AB649 /* MessageDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96E93EA02B623D4E004AB649 /* MessageDetailView.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -73,6 +78,11 @@ 968A6FB32B610C67008609EE /* KillCountDown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KillCountDown.swift; sourceTree = ""; }; 968A6FB52B6113BE008609EE /* UserAccountCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAccountCard.swift; sourceTree = ""; }; 968A6FB72B6113FF008609EE /* UserAccountCardModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAccountCardModel.swift; sourceTree = ""; }; + 96E93E962B621CF6004AB649 /* UserInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoView.swift; sourceTree = ""; }; + 96E93E9A2B622931004AB649 /* UserAvatarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAvatarView.swift; sourceTree = ""; }; + 96E93E9C2B622D00004AB649 /* NavigationPageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationPageView.swift; sourceTree = ""; }; + 96E93E9E2B62305F004AB649 /* UserNicknameView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserNicknameView.swift; sourceTree = ""; }; + 96E93EA02B623D4E004AB649 /* MessageDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageDetailView.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -106,9 +116,9 @@ isa = PBXGroup; children = ( 968A6F762B5F4E0D008609EE /* Components */, - 968A6F752B5F4DFD008609EE /* Views */, - 968A6F742B5F4DF9008609EE /* Models */, 968A6F732B5F4DF3008609EE /* Controllers */, + 968A6F742B5F4DF9008609EE /* Models */, + 968A6F752B5F4DFD008609EE /* Views */, 968A6F632B5F4C99008609EE /* demoApp.swift */, 968A6F692B5F4C9B008609EE /* Assets.xcassets */, 968A6F6B2B5F4C9B008609EE /* Preview Content */, @@ -169,6 +179,7 @@ isa = PBXGroup; children = ( 968A6F782B5F4E28008609EE /* TabBarView.swift */, + 96E93E9C2B622D00004AB649 /* NavigationPageView.swift */, ); path = Layouts; sourceTree = ""; @@ -200,6 +211,7 @@ isa = PBXGroup; children = ( 968A6F842B5F4EB2008609EE /* MessageView.swift */, + 96E93EA02B623D4E004AB649 /* MessageDetailView.swift */, ); path = Message; sourceTree = ""; @@ -207,8 +219,9 @@ 968A6F862B5F4EB6008609EE /* User */ = { isa = PBXGroup; children = ( - 968A6F902B5F6810008609EE /* Account */, 968A6F872B5F4EC4008609EE /* UserView.swift */, + 96E93E952B621CD9004AB649 /* Info */, + 968A6F902B5F6810008609EE /* Account */, 968A6F8F2B5F67FE008609EE /* Order */, ); path = User; @@ -244,6 +257,16 @@ path = Auth; sourceTree = ""; }; + 96E93E952B621CD9004AB649 /* Info */ = { + isa = PBXGroup; + children = ( + 96E93E962B621CF6004AB649 /* UserInfoView.swift */, + 96E93E9A2B622931004AB649 /* UserAvatarView.swift */, + 96E93E9E2B62305F004AB649 /* UserNicknameView.swift */, + ); + path = Info; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -320,25 +343,30 @@ 968A6FB22B5FC3A2008609EE /* ShowMore.swift in Sources */, 968A6F822B5F4EA1008609EE /* MallView.swift in Sources */, 968A6F972B5F683E008609EE /* CouponView.swift in Sources */, + 96E93E9B2B622931004AB649 /* UserAvatarView.swift in Sources */, 968A6F7C2B5F4E63008609EE /* TabBar.swift in Sources */, 968A6F8A2B5F6421008609EE /* GoodsDetailView.swift in Sources */, 968A6F922B5F681C008609EE /* AccountView.swift in Sources */, + 96E93E972B621CF6004AB649 /* UserInfoView.swift in Sources */, 968A6FAE2B5FA329008609EE /* CamelPrice.swift in Sources */, 968A6FAC2B5F6B1C008609EE /* GoodsCommentsView.swift in Sources */, 968A6FA42B5F68B8008609EE /* LicenceView.swift in Sources */, 968A6FB02B5FBB86008609EE /* GoodsCard.swift in Sources */, + 96E93EA12B623D4E004AB649 /* MessageDetailView.swift in Sources */, 968A6F9B2B5F686D008609EE /* NoticeListView.swift in Sources */, 968A6F992B5F6860008609EE /* NoticeView.swift in Sources */, 968A6F8E2B5F67F8008609EE /* OrderDetailView.swift in Sources */, 968A6F7F2B5F4E91008609EE /* HomeView.swift in Sources */, 968A6FA22B5F68AA008609EE /* ForgotView.swift in Sources */, 968A6F792B5F4E28008609EE /* TabBarView.swift in Sources */, + 96E93E9F2B62305F004AB649 /* UserNicknameView.swift in Sources */, 968A6FA82B5F6AF3008609EE /* CartView.swift in Sources */, 968A6FAA2B5F6B07008609EE /* CategoryView.swift in Sources */, 968A6FB82B6113FF008609EE /* UserAccountCardModel.swift in Sources */, 968A6F642B5F4C99008609EE /* demoApp.swift in Sources */, 968A6FB62B6113BE008609EE /* UserAccountCard.swift in Sources */, 968A6F952B5F6836008609EE /* BalanceView.swift in Sources */, + 96E93E9D2B622D00004AB649 /* NavigationPageView.swift in Sources */, 968A6FB42B610C67008609EE /* KillCountDown.swift in Sources */, 968A6F882B5F4EC4008609EE /* UserView.swift in Sources */, 968A6F9E2B5F688A008609EE /* LoginView.swift in Sources */, @@ -483,6 +511,8 @@ INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen.storyboard; + INFOPLIST_KEY_UIRequiresFullScreen = YES; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; IPHONEOS_DEPLOYMENT_TARGET = 15.0; @@ -493,9 +523,13 @@ MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = tech.uzchain.demo; PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = 1; }; name = Debug; }; @@ -514,6 +548,8 @@ INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen.storyboard; + INFOPLIST_KEY_UIRequiresFullScreen = YES; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; IPHONEOS_DEPLOYMENT_TARGET = 15.0; @@ -524,9 +560,13 @@ MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = tech.uzchain.demo; PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = 1; }; name = Release; }; diff --git a/demo.xcodeproj/project.xcworkspace/xcuserdata/jason.xcuserdatad/UserInterfaceState.xcuserstate b/demo.xcodeproj/project.xcworkspace/xcuserdata/jason.xcuserdatad/UserInterfaceState.xcuserstate index 72cb9e1cd950b92287b8a2c9751e2031ab24ed7e..738442bceda1e720c4f402b73d607e2aae55d147 100644 GIT binary patch literal 115379 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 DiGjrp literal 103946 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

21?KNxnS#+aYl81qTx#hZpbr-a6W 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 + + diff --git a/demo/Components/GoodsCard.swift b/demo/Components/GoodsCard.swift index be195ba..bf00dea 100644 --- a/demo/Components/GoodsCard.swift +++ b/demo/Components/GoodsCard.swift @@ -13,27 +13,32 @@ struct GoodsCard: View { } var body: some View { - VStack { - Image("Images/LaunchScreen") - .resizable() - .frame(maxWidth: .infinity) - .frame(maxHeight: getHeight()) - VStack(spacing: 4) { - Text("苏东坡专辑,谁谁会注解的内容哦") - .font(.subheadline) - .lineLimit(1) - HStack(alignment: .bottom) { - CamelPrice(amount: 125.9229, size: 16) - Spacer() - Text("100+付款") - .foregroundColor(Color.gray) - .font(.caption) - .baselineOffset(2) + NavigationLink { + GoodsDetailView() + } label: { + VStack { + Image("Images/LaunchScreen") + .resizable() + .frame(maxWidth: .infinity) + .frame(maxHeight: getHeight()) + VStack(spacing: 4) { + Text("苏东坡专辑,谁谁会注解的内容哦") + .font(.subheadline) + .lineLimit(1) + .foregroundColor(Color.black) + HStack(alignment: .bottom) { + CamelPrice(amount: 125.9229, size: 16) + Spacer() + Text("100+付款") + .foregroundColor(Color.gray) + .font(.caption) + .baselineOffset(2) + } } + .padding(4) } - .padding(4) + .background(Color.white) + .cornerRadius(8) } - .background(Color.white) - .cornerRadius(8) } } diff --git a/demo/Components/UserAccountCard.swift b/demo/Components/UserAccountCard.swift index b4f9dd4..c4cfe8d 100644 --- a/demo/Components/UserAccountCard.swift +++ b/demo/Components/UserAccountCard.swift @@ -10,13 +10,19 @@ import SwiftUI struct UserAccountCard: View { var model: UserAccountCardModel var body: some View { - VStack { - HStack { + VStack(alignment: .leading, spacing: 12) { + HStack(spacing: 4) { Image(systemName: model.icon) + .resizable() + .frame(width: 15, height: 15) + .foregroundColor(Color.black) Text(model.title) + .font(.system(size: 16)) + .foregroundColor(Color.black) } Text(model.info) - .font(.caption) + .font(.system(size: 12)) + .foregroundColor(Color.gray) } .padding(12) .background(Color.white) diff --git a/demo/Views/Home/HomeView.swift b/demo/Views/Home/HomeView.swift index 918feac..1d00012 100644 --- a/demo/Views/Home/HomeView.swift +++ b/demo/Views/Home/HomeView.swift @@ -11,29 +11,66 @@ struct HomeView: View { @State private var selectedTab = 0 var body: some View { - ScrollView { + ScrollView(.vertical, showsIndicators: false) { VStack(spacing: 12) { -// Search -// Banner -// Navigation + Search + Banner + Navigation TodayKill -// Living -// Bestselling -// PartyReading -// NewBooks -// Categories + Living + Bestselling + PartyReading + NewBooks + Categories + Spacer() } } .frame(maxWidth: .infinity) .padding(.horizontal, 12) + .padding(.bottom, 48) .background(Color.gray.opacity(0.2)) } + var Search: some View { + HStack(alignment: .center, spacing: 16) { + HStack { + Image(systemName: "magnifyingglass") + .resizable() + .frame(width: 18, height: 18) + .foregroundColor(Color.gray) + Text("搜索书籍") + .foregroundColor(Color.gray) + .font(.system(size: 16)) + Spacer() + } + .frame(maxWidth: /*@START_MENU_TOKEN@*/ .infinity/*@END_MENU_TOKEN@*/) + .padding(12) + .background(Color.white) + .cornerRadius(32) + Image(systemName: "bell") + .resizable() + .frame(width: 24, height: 24) + .overlay(alignment: .topTrailing) { + Circle() + .fill(Color.red.opacity(0.8)) + .frame(width: 20, height: 20) + .overlay { + Text("20") + .foregroundColor(Color.white) + .font(.system(size: 12)) + } + .offset(x: 8, y: -10) + } + + Spacer() + } + } + let columns = [GridItem(.flexible()), GridItem(.flexible())] var Categories: some View { VStack { - ScrollView(.horizontal) { + ScrollView(.horizontal, showsIndicators: false) { HStack { Text("推荐") Text("竞品书单") @@ -55,6 +92,27 @@ struct HomeView: View { } } + var Banner: some View { + TabView { + ForEach(1 ..< 4) { index in + GeometryReader { proxy in + let minX = proxy.frame(in: .global).minX + Image("Images/banner" + String(index)) + .resizable() + .aspectRatio(contentMode: .fill) + .cornerRadius(12) + .rotation3DEffect( + .degrees(minX / -10), + axis: (x: 0.0, y: 1, z: 0.0) + ) + } + } + } + .tabViewStyle(.page(indexDisplayMode: .always)) + .frame(height: 220) + .cornerRadius(12) + } + var NewBooks: some View { VStack(alignment: .leading) { HStack { @@ -178,6 +236,7 @@ struct HomeView: View { HStack { Text("今日秒杀") .foregroundColor(Color.white) + .font(.system(size: 16)) KillCountDown() } .padding(8) @@ -197,7 +256,7 @@ struct HomeView: View { .cornerRadius(8) VStack { Text("石床垫:阿特伍德黑暗就故事(有的人说啥就是啥呢有的人说啥就是啥呢有的人说啥就是啥呢)") - .font(.title2) + .font(.system(size: 20)) .multilineTextAlignment(/*@START_MENU_TOKEN@*/ .leading/*@END_MENU_TOKEN@*/) .lineLimit(/*@START_MENU_TOKEN@*/2/*@END_MENU_TOKEN@*/) .foregroundColor(Color.white) @@ -208,6 +267,7 @@ struct HomeView: View { .background(Color.white) HStack { Text("抢购") + .font(.system(size: 14)) Image(systemName: "chevron.forward") } .foregroundColor(Color.white) @@ -257,63 +317,13 @@ struct HomeView: View { .cornerRadius(64) Text("图书") + .font(.system(size: 14)) } } } } - - var Banner: some View { - HStack { - Image("Images/banner1") - .resizable(resizingMode: .stretch) - .aspectRatio(contentMode: .fit) - Image("Images/banner2") - .resizable(resizingMode: .stretch) - .aspectRatio(contentMode: .fit) - Image("Images/banner3") - .resizable(resizingMode: .stretch) - .aspectRatio(contentMode: .fit) - } - - .frame(maxWidth: /*@START_MENU_TOKEN@*/ .infinity/*@END_MENU_TOKEN@*/) - } - - var Search: some View { - HStack(alignment: .center, spacing: 16) { - HStack { - Image(systemName: "magnifyingglass") - .resizable() - .frame(width: 18, height: 18) - .foregroundColor(Color.gray) - Text("搜索书籍") - .foregroundColor(Color.gray) - Spacer() - } - .frame(maxWidth: /*@START_MENU_TOKEN@*/ .infinity/*@END_MENU_TOKEN@*/) - .padding(12) - .background(Color.white) - .cornerRadius(32) - Image(systemName: "bell") - .resizable() - .frame(width: 24, height: 24) - .overlay(alignment: .topTrailing) { - Circle() - .fill(Color.red) - .frame(width: 20, height: 20) - .offset(x: 4, y: -8) - } - .overlay(alignment: .topTrailing) { - Text("20") - .foregroundColor(Color.white) - .font(.system(size: 12)) - .offset(x: 2, y: -5) - } - Spacer() - } - } } -// -// #Preview { -// HomeView() -// } +#Preview { + HomeView() +} diff --git a/demo/Views/Layouts/NavigationPageView.swift b/demo/Views/Layouts/NavigationPageView.swift new file mode 100644 index 0000000..85cbb9a --- /dev/null +++ b/demo/Views/Layouts/NavigationPageView.swift @@ -0,0 +1,34 @@ +// +// NavigationPageView.swift +// demo +// +// Created by Jason on 2024/1/25. +// + +import SwiftUI + +struct NavigationPageView: View { + @Environment(\.dismiss) private var dismiss + var title: String = "" + var content: any View + + var body: some View { + ScrollView { + AnyView(content) + } + .navigationBarTitleDisplayMode(.inline) + .navigationTitle(title) + .navigationBarBackButtonHidden(true) + .toolbar { + ToolbarItem(placement: .navigationBarLeading) { + Button { + dismiss() + } label: { + HStack { + Image(systemName: "chevron.backward") + } + } + } + } + } +} diff --git a/demo/Views/Layouts/TabBarView.swift b/demo/Views/Layouts/TabBarView.swift index a2c552a..62739cf 100644 --- a/demo/Views/Layouts/TabBarView.swift +++ b/demo/Views/Layouts/TabBarView.swift @@ -11,51 +11,54 @@ struct TabBarView: View { @AppStorage("selectedTab") var selectedTab: Tab = .home var body: some View { - ZStack(alignment: .leading) { - Group { - switch selectedTab { - case .home: - HomeView() - case .explore: - MallView() - case .message: - MessageView() - case .account: - UserView() + NavigationView { + ZStack(alignment: .leading) { + Group { + switch selectedTab { + case .home: + HomeView() + case .explore: + MallView() + case .message: + MessageView() + case .account: + UserView() + } } - } -// .offset(y: -64) -// .safeAreaInset(edge: .top) { -// Color.clear.frame(height: 32) -// } + // .offset(y: -64) + // .safeAreaInset(edge: .top) { + // Color.clear.frame(height: 32) + // } - HStack { - ForEach(tabItems) { item in - Button(action: { - selectedTab = item.tab - }, label: { - VStack(spacing: 6) { - Image(systemName: item.icon).resizable().frame(width: 18, height: 18) - Text(item.text) - .font(.caption) - .fontWeight(.regular) - .multilineTextAlignment(.center) - .lineLimit(1) - } - .frame(maxWidth: .infinity) - }) - .foregroundColor(selectedTab == item.tab ? Color("MainText") : Color.secondary) - .shadow(color: selectedTab == item.tab ? Color.orange : Color.blue, radius: 15) + HStack { + ForEach(tabItems) { item in + Button(action: { + selectedTab = item.tab + }, label: { + VStack(spacing: 6) { + Image(systemName: item.icon).resizable().frame(width: 18, height: 18) + Text(item.text) + .font(.caption) + .fontWeight(.regular) + .multilineTextAlignment(.center) + .lineLimit(1) + } + .frame(maxWidth: .infinity) + }) + .foregroundColor(selectedTab == item.tab ? Color("MainText") : Color.secondary) + .shadow(color: selectedTab == item.tab ? Color.orange : Color.blue, radius: 15) + } } + .padding(.top, 12.0) + .padding(.bottom, 32) + .background(Color("TabBarColor")) + .frame(maxHeight: .infinity, alignment: .bottom) + .shadow(color: Color.gray.opacity(0.5), radius: 6, x: 0, y: 6) + .ignoresSafeArea() } - .padding(.top, 12.0) - .padding(.bottom, 32) - .background(Color("TabBarColor")) - .frame(maxHeight: .infinity, alignment: .bottom) - .shadow(color: Color.gray.opacity(0.5), radius: 6, x: 0, y: 6) - .ignoresSafeArea() + .statusBarHidden(false) } - .statusBarHidden(false) + .navigationViewStyle(.columns) } } diff --git a/demo/Views/Mall/GoodsDetailView.swift b/demo/Views/Mall/GoodsDetailView.swift index 0834c6b..13099ab 100644 --- a/demo/Views/Mall/GoodsDetailView.swift +++ b/demo/Views/Mall/GoodsDetailView.swift @@ -9,7 +9,11 @@ import SwiftUI struct GoodsDetailView: View { var body: some View { - Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) + NavigationPageView(title: "商品详情", content: content) + } + + var content: some View { + Image("Images/banner1") } } diff --git a/demo/Views/Message/MessageDetailView.swift b/demo/Views/Message/MessageDetailView.swift new file mode 100644 index 0000000..c1bd911 --- /dev/null +++ b/demo/Views/Message/MessageDetailView.swift @@ -0,0 +1,22 @@ +// +// MessageDetailView.swift +// demo +// +// Created by Jason on 2024/1/25. +// + +import SwiftUI + +struct MessageDetailView: View { + var body: some View { + NavigationPageView(title: "消息详情", content: content) + } + + var content: some View { + Text("asdf") + } +} + +#Preview { + MessageDetailView() +} diff --git a/demo/Views/Message/MessageView.swift b/demo/Views/Message/MessageView.swift index 3051e4f..5fe1c68 100644 --- a/demo/Views/Message/MessageView.swift +++ b/demo/Views/Message/MessageView.swift @@ -9,7 +9,17 @@ import SwiftUI struct MessageView: View { var body: some View { - Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) + NavigationPageView(title: "资讯列表", content: content) + } + + var content: some View { + VStack { + NavigationLink { + MessageDetailView() + } label: { + Text("xiaoxo") + } + } } } diff --git a/demo/Views/User/Account/AccountView.swift b/demo/Views/User/Account/AccountView.swift index 9ddc3fa..dd7d13e 100644 --- a/demo/Views/User/Account/AccountView.swift +++ b/demo/Views/User/Account/AccountView.swift @@ -9,7 +9,7 @@ import SwiftUI struct AccountView: View { var body: some View { - Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) + NavigationPageView(title: "我的积分", content: Text("Account View")) } } diff --git a/demo/Views/User/Info/UserAvatarView.swift b/demo/Views/User/Info/UserAvatarView.swift new file mode 100644 index 0000000..96f3275 --- /dev/null +++ b/demo/Views/User/Info/UserAvatarView.swift @@ -0,0 +1,54 @@ +// +// UserAvatarView.swift +// demo +// +// Created by Jason on 2024/1/25. +// + +import SwiftUI + +struct UserAvatarView: View { + @Environment(\.dismiss) private var dismiss + + @State private var showSheet = false + + var body: some View { + VStack { + Image("Images/banner1") + .resizable() + .aspectRatio(contentMode: .fit) + .frame(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.width) + } + .toolbar { + ToolbarItem(placement: .navigationBarLeading) { + Button { + dismiss() + } label: { + Image(systemName: "chevron.backward") + } + } + + ToolbarItem(placement: .navigationBarTrailing) { + Button { + showSheet = true + } label: { + Image(systemName: "ellipsis") + } + .actionSheet(isPresented: $showSheet, content: { + ActionSheet(title: Text("更换头像"), message: nil, buttons: [ + .default(Text("从相册选择"), action: {}), + .default(Text("拍一张"), action: {}), + .cancel(Text("取消")) + ]) + }) + } + } + .navigationBarBackButtonHidden(true) + .navigationBarTitleDisplayMode(.inline) + .navigationTitle("头像") + } +} + +#Preview { + UserAvatarView() +} diff --git a/demo/Views/User/Info/UserInfoView.swift b/demo/Views/User/Info/UserInfoView.swift new file mode 100644 index 0000000..6c52da3 --- /dev/null +++ b/demo/Views/User/Info/UserInfoView.swift @@ -0,0 +1,24 @@ +// +// UserInfoView.swift +// demo +// +// Created by Jason on 2024/1/25. +// + +import SwiftUI + +struct UserInfoView: View { + var body: some View { + NavigationPageView(title: "用户设置", content: VStack { + NavigationLink { + UserNicknameView() + } label: { + Text("用户昵称") + } + }) + } +} + +#Preview { + UserInfoView() +} diff --git a/demo/Views/User/Info/UserNicknameView.swift b/demo/Views/User/Info/UserNicknameView.swift new file mode 100644 index 0000000..ef05497 --- /dev/null +++ b/demo/Views/User/Info/UserNicknameView.swift @@ -0,0 +1,18 @@ +// +// UserNicknameView.swift +// demo +// +// Created by Jason on 2024/1/25. +// + +import SwiftUI + +struct UserNicknameView: View { + var body: some View { + NavigationPageView(title: "用户昵称", content: Text("nickname")) + } +} + +#Preview { + UserNicknameView() +} diff --git a/demo/Views/User/Order/OrdersView.swift b/demo/Views/User/Order/OrdersView.swift index cbcaf4d..a1912ba 100644 --- a/demo/Views/User/Order/OrdersView.swift +++ b/demo/Views/User/Order/OrdersView.swift @@ -9,7 +9,11 @@ import SwiftUI struct OrdersView: View { var body: some View { - Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) + NavigationPageView(title: "全部订单", content: content) + } + + var content: some View { + Text("q全部订单, World!") } } diff --git a/demo/Views/User/UserView.swift b/demo/Views/User/UserView.swift index 079dec7..ace3376 100644 --- a/demo/Views/User/UserView.swift +++ b/demo/Views/User/UserView.swift @@ -9,35 +9,38 @@ import SwiftUI struct UserView: View { @State private var showDetail = false + @State private var showUserInfo = false var body: some View { - ScrollView { - Header - ToVip - - VStack(spacing: 16) { + ScrollView(.vertical, showsIndicators: false) { + VStack(spacing: 0) { + Header + ToVip InfoList Notice OrderShow Coupons - tj + Recommend } - .padding(16) - .background(Color.gray.opacity(0.2)) - .cornerRadius(12) } + .padding(.bottom, 48) + .animation(.spring, value: showDetail) } var Header: some View { HStack { - Image("Images/logo") - .resizable() - .frame(width: 64, height: 64) - .cornerRadius(32) - .overlay( - RoundedRectangle(cornerRadius: 32, style: .continuous) - .stroke(Color.red, lineWidth: 2) - ) + NavigationLink { + UserAvatarView() + } label: { + Image("Images/logo") + .resizable() + .frame(width: 64, height: 64) + .cornerRadius(32) + .overlay( + RoundedRectangle(cornerRadius: 32, style: .continuous) + .stroke(Color.red, lineWidth: 2) + ) + } VStack(alignment: .leading, spacing: 12, content: { Text("用户名称") @@ -48,15 +51,18 @@ struct UserView: View { .foregroundColor(Color.gray) .lineLimit(1) }) - - Image(systemName: "gearshape") - .foregroundColor(Color.gray) + NavigationLink { + UserInfoView() + } label: { + Image(systemName: "gearshape") + .foregroundColor(Color.gray) + } } .padding(.horizontal, 24) } var ToVip: some View { - HStack(spacing: /*@START_MENU_TOKEN@*/nil/*@END_MENU_TOKEN@*/, content: { + HStack(alignment: .top, spacing: /*@START_MENU_TOKEN@*/nil/*@END_MENU_TOKEN@*/, content: { Text("VIP de yixie 简介部分") Button(action: { self.showDetail.toggle() @@ -72,111 +78,194 @@ struct UserView: View { .background(Color.gray) .cornerRadius(32) }) - .padding(16) - .padding(.bottom, 64) - .frame(maxWidth: .infinity) - .frame(height: showDetail ? 100 : 200) - .animation(.default, value: showDetail) - .background( - Image("Images/banner3").resizable(resizingMode: .tile) -// .overlay( -// UnevenRoundedRectangle(cornerRadii: RectangleCornerRadii(topLeading: 12, topTrailing: 12)) -// ) + .padding(12) + .padding(.top, 12) + .frame(height: showDetail ? 64 : 150, alignment: .topLeading) + .background(Color.red.opacity(0.3)) + .clipShape( + RoundedRectangle(cornerRadius: 12) + .offset(y: 12) ) - .cornerRadius(12) - .padding(.horizontal, 16) + + .padding(.horizontal, 12) } var InfoList: some View { - ScrollView(.horizontal) { - HStack(spacing: 16) { - ForEach(/*@START_MENU_TOKEN@*/0 ..< 5/*@END_MENU_TOKEN@*/) { _ in - UserAccountCard(model: UserAccountCardModel(title: "我的积分", icon: "star", info: "共30001分")) + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 12) { + ForEach(0 ..< 8) { _ in + NavigationLink { + AccountView() + } label: { + UserAccountCard(model: UserAccountCardModel(title: "我的积分", icon: "star", info: "共30001分")) + } } } } + .padding(12) + .background(Color.gray.opacity(0.2)) } var Notice: some View { - HStack { + HStack(spacing: 4) { Text("资讯") .padding(4) .background(Color.red) .foregroundColor(Color.white) - Text("平台与2024年1余额开始更新,敬请期待@@@") - .foregroundColor(Color.gray) - .frame(maxWidth: .infinity) - .multilineTextAlignment(/*@START_MENU_TOKEN@*/ .leading/*@END_MENU_TOKEN@*/) - .lineLimit(1) - Text("更多") - .foregroundColor(Color.secondary) + .font(.system(size: 16)) + NavigationLink { + MessageDetailView() + } label: { + Text("平台与2024年1余额开始更新,敬请期待@@@") + .foregroundColor(Color.gray) + .frame(maxWidth: .infinity) + .multilineTextAlignment(/*@START_MENU_TOKEN@*/ .leading/*@END_MENU_TOKEN@*/) + .font(.system(size: 14)) + .lineLimit(1) + } + NavigationLink { + MessageView() + } label: { + HStack(spacing: 2, content: { + Text("更多") + .font(.system(size: 14)) + .foregroundColor(Color.secondary) + Image(systemName: "chevron.forward.2") + .resizable() + .frame(width: 10, height: 10) + .foregroundColor(Color.secondary) + }) + } } .frame(maxWidth: .infinity) .padding(8) .background(Color.white) .cornerRadius(8) + .padding(.horizontal, 12) + .padding(.bottom, 12) + .background(Color.gray.opacity(0.2)) } var OrderShow: some View { - VStack(spacing: 16) { + VStack(spacing: 0) { HStack { Text("订单中心") + .font(.system(size: 16)) Spacer() - ShowMore() + NavigationLink { + OrdersView() + } label: { + ShowMore() + } } - .padding(8) - HStack { + .padding(.horizontal, 12) + Spacer(minLength: 22) + HStack(alignment: .center) { Spacer() ForEach(/*@START_MENU_TOKEN@*/0 ..< 5/*@END_MENU_TOKEN@*/) { _ in - VStack { - Image(systemName: "wallet.pass") - Text("待付款") - .font(.system(size: 12)) + NavigationLink { + OrdersView() + } label: { + VStack { + Image(systemName: "wallet.pass") + .resizable() + .frame(width: 24, height: 24) + .foregroundColor(Color.gray) + .overlay(alignment: .topTrailing) { + Circle() + .fill(Color.red.opacity(0.9)) + .frame(width: 20, height: 20) + .overlay { + Text("5") + .foregroundColor(Color.white) + .font(.system(size: 12)) + } + .offset(x: 12, y: -10) + } + + Text("待付款") + .font(.system(size: 12)) + .foregroundColor(Color.gray) + } } Spacer() } } } + .padding(.vertical, 12) .background(Color.white) .cornerRadius(6) + .padding(.horizontal, 12) + .padding(.bottom, 12) + .background(Color.gray.opacity(0.2)) } var Coupons: some View { - VStack(spacing: 16) { + VStack(spacing: 0) { HStack { Spacer() ForEach(/*@START_MENU_TOKEN@*/0 ..< 5/*@END_MENU_TOKEN@*/) { _ in VStack { Image(systemName: "wallet.pass") - Text("优惠券") + .resizable() + .frame(width: 24, height: 24) + .foregroundColor(Color.gray) + .overlay(alignment: .topTrailing) { + Circle() + .fill(Color.red.opacity(0.9)) + .frame(width: 20, height: 20) + .overlay { + Text("5") + .foregroundColor(Color.white) + .font(.system(size: 12)) + } + .offset(x: 12, y: -10) + } + Text("待付款") .font(.system(size: 12)) + .foregroundColor(Color.gray) } Spacer() } } } - .padding(12) + .padding(.top, 22) + .padding(.bottom, 12) .background(Color.white) .cornerRadius(6) + .padding(.horizontal, 12) + .padding(.bottom, 12) + .background(Color.gray.opacity(0.2)) } - let columns = [GridItem(.flexible()), GridItem(.flexible())] + let columns = [GridItem(.flexible(), spacing: 12), GridItem(.flexible(), spacing: 12)] - var tj: some View { - LazyVGrid(columns: columns, alignment: .center) { + var Recommend: some View { + LazyVGrid(columns: columns, alignment: .center, spacing: 12, pinnedViews: .sectionHeaders) { Section { ForEach(0 ..< 20, id: \.self) { _ in GoodsCard() } } header: { - Text("推荐广场") + HStack { + Rectangle() + .fill(LinearGradient(colors: [Color.gray.opacity(0), Color.gray.opacity(0.8)], startPoint: .leading, endPoint: UnitPoint.trailing)) + .frame(width: 48, height: 4.0) + Text("推荐广场") + .font(.system(size: 16)) + Rectangle() + .fill(LinearGradient(colors: [Color.gray.opacity(0.8), Color.gray.opacity(0)], startPoint: .leading, endPoint: UnitPoint.trailing)) + .frame(width: 48, height: 4.0) + } } } + .padding(.horizontal, 12) + .padding(.bottom, 12) + .background(Color.gray.opacity(0.2)) } } -// -// #Preview { -// UserView() -// } +#Preview { + UserView() +} diff --git a/demo/demoApp.swift b/demo/demoApp.swift index f08e05c..811188b 100644 --- a/demo/demoApp.swift +++ b/demo/demoApp.swift @@ -5,8 +5,8 @@ // Created by Jason on 2024/1/23. // -import SwiftUI import SwiftData +import SwiftUI @main struct demoApp: App {