diff --git a/DouShouQi_App/Assets/title-background.png b/DouShouQi_App/Assets/title-background.png new file mode 100644 index 0000000..dcd3220 Binary files /dev/null and b/DouShouQi_App/Assets/title-background.png differ diff --git a/DouShouQi_App/DouShouQi_App.xcodeproj/project.pbxproj b/DouShouQi_App/DouShouQi_App.xcodeproj/project.pbxproj index afd54af..3626663 100644 --- a/DouShouQi_App/DouShouQi_App.xcodeproj/project.pbxproj +++ b/DouShouQi_App/DouShouQi_App.xcodeproj/project.pbxproj @@ -18,6 +18,13 @@ 645834892BF5FEA000E18321 /* DSQ.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 645834872BF5FEA000E18321 /* DSQ.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 649ABF5B2BF60D78002E8894 /* MainMenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649ABF5A2BF60D78002E8894 /* MainMenuView.swift */; }; 649ABF602BF60F2D002E8894 /* MainMenuButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649ABF5F2BF60F2D002E8894 /* MainMenuButton.swift */; }; + 649B59A42BF64574002BAE38 /* TitlePageFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59A32BF64574002BAE38 /* TitlePageFrame.swift */; }; + 649B59A72BF64BA9002BAE38 /* Colors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 649B59A62BF64BA9002BAE38 /* Colors.xcassets */; }; + 649B59A92BF64C6A002BAE38 /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59A82BF64C6A002BAE38 /* Colors.swift */; }; + 649B59AC2BF64E12002BAE38 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 649B59AB2BF64E12002BAE38 /* Images.xcassets */; }; + 649B59AE2BF64EAB002BAE38 /* AppImages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59AD2BF64EAB002BAE38 /* AppImages.swift */; }; + 649B59B22BF65392002BAE38 /* TextStyles.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59B12BF65392002BAE38 /* TextStyles.swift */; }; + 649B59B42BF653E1002BAE38 /* ViewTitleTextStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B59B32BF653E1002BAE38 /* ViewTitleTextStyle.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -66,6 +73,13 @@ 645834872BF5FEA000E18321 /* DSQ.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = DSQ.xcframework; sourceTree = ""; }; 649ABF5A2BF60D78002E8894 /* MainMenuView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainMenuView.swift; sourceTree = ""; }; 649ABF5F2BF60F2D002E8894 /* MainMenuButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainMenuButton.swift; sourceTree = ""; }; + 649B59A32BF64574002BAE38 /* TitlePageFrame.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TitlePageFrame.swift; sourceTree = ""; }; + 649B59A62BF64BA9002BAE38 /* Colors.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Colors.xcassets; sourceTree = ""; }; + 649B59A82BF64C6A002BAE38 /* Colors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Colors.swift; sourceTree = ""; }; + 649B59AB2BF64E12002BAE38 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + 649B59AD2BF64EAB002BAE38 /* AppImages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppImages.swift; sourceTree = ""; }; + 649B59B12BF65392002BAE38 /* TextStyles.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextStyles.swift; sourceTree = ""; }; + 649B59B32BF653E1002BAE38 /* ViewTitleTextStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewTitleTextStyle.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -118,6 +132,7 @@ 6458345A2BF5F92300E18321 /* DouShouQi_App */ = { isa = PBXGroup; children = ( + 649B59A52BF64B1B002BAE38 /* Assets */, 649ABF5E2BF60ED5002E8894 /* Components */, 649ABF592BF60D13002E8894 /* Views */, 645834852BF5FE1400E18321 /* DouShouQi-App-Info.plist */, @@ -174,10 +189,48 @@ isa = PBXGroup; children = ( 649ABF5F2BF60F2D002E8894 /* MainMenuButton.swift */, + 649B59A32BF64574002BAE38 /* TitlePageFrame.swift */, ); path = Components; sourceTree = ""; }; + 649B59A52BF64B1B002BAE38 /* Assets */ = { + isa = PBXGroup; + children = ( + 649B59B02BF65360002BAE38 /* TextStyles */, + 649B59AF2BF64F0A002BAE38 /* Colors */, + 649B59AA2BF64DF1002BAE38 /* Images */, + ); + path = Assets; + sourceTree = ""; + }; + 649B59AA2BF64DF1002BAE38 /* Images */ = { + isa = PBXGroup; + children = ( + 649B59AB2BF64E12002BAE38 /* Images.xcassets */, + 649B59AD2BF64EAB002BAE38 /* AppImages.swift */, + ); + path = Images; + sourceTree = ""; + }; + 649B59AF2BF64F0A002BAE38 /* Colors */ = { + isa = PBXGroup; + children = ( + 649B59A62BF64BA9002BAE38 /* Colors.xcassets */, + 649B59A82BF64C6A002BAE38 /* Colors.swift */, + ); + path = Colors; + sourceTree = ""; + }; + 649B59B02BF65360002BAE38 /* TextStyles */ = { + isa = PBXGroup; + children = ( + 649B59B12BF65392002BAE38 /* TextStyles.swift */, + 649B59B32BF653E1002BAE38 /* ViewTitleTextStyle.swift */, + ); + path = TextStyles; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -283,6 +336,8 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 649B59A72BF64BA9002BAE38 /* Colors.xcassets in Resources */, + 649B59AC2BF64E12002BAE38 /* Images.xcassets in Resources */, 645834632BF5F92500E18321 /* Preview Assets.xcassets in Resources */, 645834602BF5F92500E18321 /* Assets.xcassets in Resources */, ); @@ -310,9 +365,14 @@ buildActionMask = 2147483647; files = ( 6458345E2BF5F92300E18321 /* ContentView.swift in Sources */, + 649B59A92BF64C6A002BAE38 /* Colors.swift in Sources */, + 649B59B42BF653E1002BAE38 /* ViewTitleTextStyle.swift in Sources */, + 649B59AE2BF64EAB002BAE38 /* AppImages.swift in Sources */, 649ABF602BF60F2D002E8894 /* MainMenuButton.swift in Sources */, + 649B59B22BF65392002BAE38 /* TextStyles.swift in Sources */, 6458345C2BF5F92300E18321 /* DouShouQi_AppApp.swift in Sources */, 649ABF5B2BF60D78002E8894 /* MainMenuView.swift in Sources */, + 649B59A42BF64574002BAE38 /* TitlePageFrame.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/DouShouQi_App/DouShouQi_App/Components/TitlePageFrame.swift b/DouShouQi_App/DouShouQi_App/Components/TitlePageFrame.swift new file mode 100644 index 0000000..7f6be9c --- /dev/null +++ b/DouShouQi_App/DouShouQi_App/Components/TitlePageFrame.swift @@ -0,0 +1,41 @@ +// +// TitlePageFrame.swift +// DouShouQi_App +// +// Created by Rémi REGNAULT on 16/05/2024. +// + +import SwiftUI + +struct TitlePageFrame: View { + + // Text Params + var Text: String + + // Image Params + var ImageWidth: CGFloat + var ImageHeight: CGFloat + + var body: some View { + VStack(alignment: .leading) { + ZStack { + Image(AppImages.TitleImage) + .resizable() + .aspectRatio(contentMode: .fit) + .frame(width: ImageWidth, height: ImageHeight) + + SwiftUI.Text(self.Text) + .foregroundColor(Colors.TitleText) + .fontWeight(.bold) + .font(.title) + + } + } + } +} + +struct TitlePageFrame_Previews: PreviewProvider { + static var previews: some View { + TitlePageFrame(Text: "DouShouQi", ImageWidth: 200, ImageHeight: 200) + } +}