- Icon setup on home screen in auto layout

- Added the LiveTv Moving View. Converted the timer into animation for the moving view.
- Made a Enum with custom functions to handle the time.
- Added logic to handle the dark grass for night time
- Rescaled the home grass so dark grass and light grass has identical dimensions
- Handled the night mode with white text for clear text
This commit is contained in:
2024-05-23 19:27:34 +05:30
parent ccacd16c49
commit 33180a55ab
44 changed files with 855 additions and 131 deletions

View File

@@ -105,6 +105,9 @@
52D774EF2BDFC50D001D87DE /* StringValidations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52D774EE2BDFC50D001D87DE /* StringValidations.swift */; };
52D774F12BDFC53B001D87DE /* StringSubScript.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52D774F02BDFC53B001D87DE /* StringSubScript.swift */; };
52FB2D8F2BDF898F0009B0C7 /* TextFieldPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52FB2D8E2BDF898F0009B0C7 /* TextFieldPadding.swift */; };
52FDBA782BFF23F4009D7AC7 /* TimePeriod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52FDBA772BFF23F4009D7AC7 /* TimePeriod.swift */; };
52FDBA7B2BFF2712009D7AC7 /* AuthFuncTimeHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52FDBA7A2BFF2712009D7AC7 /* AuthFuncTimeHandling.swift */; };
52FDBA7D2BFF481A009D7AC7 /* HomeVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52FDBA7C2BFF481A009D7AC7 /* HomeVM.swift */; };
52FDDAB52BF34DC300E037C1 /* YesNoAlertVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52FDDAB42BF34DC300E037C1 /* YesNoAlertVC.swift */; };
619A5A1BD8BD968ADC83C106 /* Pods_WOKA.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBA543A4216400A2864E3D3E /* Pods_WOKA.framework */; };
9C0A853F2BEE35340093783D /* ForgotPassDM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C0A853E2BEE35340093783D /* ForgotPassDM.swift */; };
@@ -256,6 +259,9 @@
52E7E0F62BDF7DD500C86E10 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/AuthenticationSB.strings; sourceTree = "<group>"; };
52E7E0F82BDF7DD900C86E10 /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = hi.lproj/AuthenticationSB.strings; sourceTree = "<group>"; };
52FB2D8E2BDF898F0009B0C7 /* TextFieldPadding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldPadding.swift; sourceTree = "<group>"; };
52FDBA772BFF23F4009D7AC7 /* TimePeriod.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimePeriod.swift; sourceTree = "<group>"; };
52FDBA7A2BFF2712009D7AC7 /* AuthFuncTimeHandling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthFuncTimeHandling.swift; sourceTree = "<group>"; };
52FDBA7C2BFF481A009D7AC7 /* HomeVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeVM.swift; sourceTree = "<group>"; };
52FDDAB42BF34DC300E037C1 /* YesNoAlertVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YesNoAlertVC.swift; sourceTree = "<group>"; };
9C0A853E2BEE35340093783D /* ForgotPassDM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ForgotPassDM.swift; sourceTree = "<group>"; };
9C0A85402BEE35670093783D /* ResetPassUserNameVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResetPassUserNameVM.swift; sourceTree = "<group>"; };
@@ -508,6 +514,7 @@
525327D12BFCC1BC00F64283 /* Model */ = {
isa = PBXGroup;
children = (
52FDBA772BFF23F4009D7AC7 /* TimePeriod.swift */,
);
path = Model;
sourceTree = "<group>";
@@ -523,6 +530,7 @@
isa = PBXGroup;
children = (
525327D52BFCC23600F64283 /* SideMenuVM.swift */,
52FDBA7C2BFF481A009D7AC7 /* HomeVM.swift */,
);
path = ViewModel;
sourceTree = "<group>";
@@ -665,6 +673,16 @@
path = GIF_JSON;
sourceTree = "<group>";
};
52FDBA792BFF26F9009D7AC7 /* AuthFunc */ = {
isa = PBXGroup;
children = (
9C27E1622BDB6F1900EC1DA9 /* AuthFunc.swift */,
525327D82BFCDDF700F64283 /* AuthFuncStartupSoundHandling.swift */,
52FDBA7A2BFF2712009D7AC7 /* AuthFuncTimeHandling.swift */,
);
path = AuthFunc;
sourceTree = "<group>";
};
9C27E15E2BDB6E4F00EC1DA9 /* Localized Module */ = {
isa = PBXGroup;
children = (
@@ -676,10 +694,9 @@
9C27E1612BDB6F0F00EC1DA9 /* Main */ = {
isa = PBXGroup;
children = (
9C27E1622BDB6F1900EC1DA9 /* AuthFunc.swift */,
52FDBA792BFF26F9009D7AC7 /* AuthFunc */,
523ED25D2BDA2BC700CFED02 /* AppDelegate.swift */,
523ED25F2BDA2BC700CFED02 /* SceneDelegate.swift */,
525327D82BFCDDF700F64283 /* AuthFuncStartupSoundHandling.swift */,
);
path = Main;
sourceTree = "<group>";
@@ -759,10 +776,10 @@
9CBCB2A62BE5104F007D7934 /* Home */ = {
isa = PBXGroup;
children = (
525327D42BFCC1CF00F64283 /* Controller */,
525327D32BFCC1C900F64283 /* ViewModel */,
525327D22BFCC1C400F64283 /* View */,
525327D12BFCC1BC00F64283 /* Model */,
525327D22BFCC1C400F64283 /* View */,
525327D32BFCC1C900F64283 /* ViewModel */,
525327D42BFCC1CF00F64283 /* Controller */,
9CBCB2A72BE5105A007D7934 /* Home.storyboard */,
);
path = Home;
@@ -1020,6 +1037,7 @@
9CBCB2A32BE50C95007D7934 /* ResetPassUserNameVC.swift in Sources */,
52A3F6A52BECBA8D0000BB0B /* LinkedChildDM.swift in Sources */,
52A3F6AB2BECBF550000BB0B /* LinkedChildVC.swift in Sources */,
52FDBA7B2BFF2712009D7AC7 /* AuthFuncTimeHandling.swift in Sources */,
9CBCB2A52BE50D49007D7934 /* NewPasswordVC.swift in Sources */,
9CBCB29F2BE4E13A007D7934 /* ValidatorClass.swift in Sources */,
522242592BFC73E40085C632 /* BasicTransitionAnimator.swift in Sources */,
@@ -1046,6 +1064,7 @@
522242622BFC73E40085C632 /* UIViewController+SideMenu.swift in Sources */,
5222425B2BFC73E40085C632 /* Preferences.swift in Sources */,
52C6E01E2BE3847F00E22D59 /* BorderView.swift in Sources */,
52FDBA7D2BFF481A009D7AC7 /* HomeVM.swift in Sources */,
52C8B0742BDA7626003B51D0 /* OnBoardVC.swift in Sources */,
525953CF2BE8B28F00191286 /* Utilities.swift in Sources */,
9CBCB2A12BE4E50A007D7934 /* TextFieldPassword.swift in Sources */,
@@ -1059,6 +1078,7 @@
522242602BFC73E40085C632 /* UIView+Container.swift in Sources */,
522242612BFC73E40085C632 /* UIViewController+Container.swift in Sources */,
9C27E1652BDB6FBC00EC1DA9 /* StoryBoardID.swift in Sources */,
52FDBA782BFF23F4009D7AC7 /* TimePeriod.swift in Sources */,
525954322BEA39D200191286 /* AddTapGesture.swift in Sources */,
522242682BFC74380085C632 /* TabBarVC.swift in Sources */,
9C27E1722BDB86B600EC1DA9 /* OnBoardCell.swift in Sources */,

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

View File

@@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "AudioBooks.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "AudioBooks@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "AudioBooks@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "FM Logo Static_02 1.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "Games.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Games@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Games@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 562 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mountain.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mountainNight.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Image@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

View File

@@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "Karaoke.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Karaoke@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Karaoke@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

View File

@@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "LiveTV.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "LiveTV@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "LiveTV@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Live TV Balloon Icon (1).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

View File

@@ -9,7 +9,7 @@
"scale" : "2x"
},
{
"filename" : "Shop@3x.png",
"filename" : "image 8.png",
"idiom" : "universal",
"scale" : "3x"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "Shop.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Shop@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Shop@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

View File

@@ -43,25 +43,25 @@
</constraints>
</imageView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="70" translatesAutoresizingMaskIntoConstraints="NO" id="wZZ-TW-F7M">
<rect key="frame" x="20" y="172.5" width="374" height="202"/>
<rect key="frame" x="20" y="172.5" width="374" height="203.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Lets be Safe!" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yPx-mT-kaf" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="10" y="0.0" width="354" height="33"/>
<rect key="frame" x="10" y="0.0" width="354" height="34"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="28"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="xww-d1-beY">
<rect key="frame" x="10" y="103" width="354" height="99"/>
<rect key="frame" x="10" y="104" width="354" height="99.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="CAN WE HAVE YOUR PARENTS EMAIL?" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="STc-F9-ORA">
<rect key="frame" x="0.0" y="0.0" width="354" height="19"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="19.5"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="useless@yopmail.com" placeholder="Enter your email" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="DSB-Ge-wNO" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="34" width="354" height="50"/>
<rect key="frame" x="0.0" y="34.5" width="354" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -80,7 +80,7 @@
</userDefinedRuntimeAttributes>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JHJ-Zh-JC5">
<rect key="frame" x="0.0" y="99" width="354" height="0.0"/>
<rect key="frame" x="0.0" y="99.5" width="354" height="0.0"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -91,16 +91,16 @@
<edgeInsets key="layoutMargins" top="0.0" left="10" bottom="0.0" right="10"/>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="35" translatesAutoresizingMaskIntoConstraints="NO" id="kWC-4v-p9x">
<rect key="frame" x="30" y="740.5" width="354" height="101.5"/>
<rect key="frame" x="30" y="740" width="354" height="102"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="We will send a verification code to their email" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lqT-ZV-x5p" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="354" height="16.5"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="17"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="14"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zNR-RE-Ax8" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="51.5" width="354" height="50"/>
<rect key="frame" x="0.0" y="52" width="354" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="4eR-zk-hWT"/>
</constraints>
@@ -167,10 +167,10 @@
</constraints>
</imageView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="70" translatesAutoresizingMaskIntoConstraints="NO" id="mhH-Ov-1nU">
<rect key="frame" x="20" y="172.5" width="374" height="278.5"/>
<rect key="frame" x="20" y="172.5" width="374" height="281.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NYC-6J-drr" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="10" y="0.0" width="354" height="65.5"/>
<rect key="frame" x="10" y="0.0" width="354" height="67.5"/>
<string key="text">Please Get the Code
Sent to Your Parents Email</string>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="28"/>
@@ -178,16 +178,16 @@ Sent to Your Parents Email</string>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="dF8-rD-e8F">
<rect key="frame" x="10" y="135.5" width="354" height="143"/>
<rect key="frame" x="10" y="137.5" width="354" height="144"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="PLEASE ENTER THE CODE" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tB6-Qz-8Ez" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="354" height="19"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="19.5"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="HGA-bw-mMW">
<rect key="frame" x="0.0" y="34" width="354" height="60"/>
<rect key="frame" x="0.0" y="34.5" width="354" height="60"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="*" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="81S-Fa-CiD" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="81" height="60"/>
@@ -223,13 +223,13 @@ Sent to Your Parents Email</string>
</constraints>
</stackView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="OTP is valid for 10:00 Min" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WcL-Rp-jOq" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="109" width="354" height="19"/>
<rect key="frame" x="0.0" y="109.5" width="354" height="19.5"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="KX4-Ip-eii" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="135.5" width="354" height="0.0"/>
<rect key="frame" x="0.0" y="136.5" width="354" height="0.0"/>
<color key="tintColor" name="TextDarkBlue"/>
<state key="normal" title="Button"/>
<buttonConfiguration key="configuration" style="plain">
@@ -247,7 +247,7 @@ Sent to Your Parents Email</string>
</connections>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dt3-hg-7T4" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="143" width="354" height="0.0"/>
<rect key="frame" x="0.0" y="144" width="354" height="0.0"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -258,16 +258,16 @@ Sent to Your Parents Email</string>
<edgeInsets key="layoutMargins" top="0.0" left="10" bottom="0.0" right="10"/>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="35" translatesAutoresizingMaskIntoConstraints="NO" id="xga-nK-9qJ">
<rect key="frame" x="30" y="724" width="354" height="118"/>
<rect key="frame" x="30" y="723" width="354" height="119"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Request them for the verfication code to activate your account" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="M3r-lS-DmW" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="354" height="33"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="34"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="14"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vVW-Kz-YaV" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="68" width="354" height="50"/>
<rect key="frame" x="0.0" y="69" width="354" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="KmJ-vu-pxT"/>
</constraints>
@@ -339,28 +339,28 @@ Sent to Your Parents Email</string>
</constraints>
</imageView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="70" translatesAutoresizingMaskIntoConstraints="NO" id="L80-bN-1T0">
<rect key="frame" x="20" y="172.5" width="374" height="506.5"/>
<rect key="frame" x="20" y="172.5" width="374" height="510.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Great! Now Lets Create Your WOKAccount" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3x2-kd-tL1" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="10" y="0.0" width="354" height="63"/>
<rect key="frame" x="10" y="0.0" width="354" height="65"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="27"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="30" translatesAutoresizingMaskIntoConstraints="NO" id="bJs-H6-708">
<rect key="frame" x="10" y="133" width="354" height="373.5"/>
<rect key="frame" x="10" y="135" width="354" height="375.5"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="LUQ-BX-nHw">
<rect key="frame" x="0.0" y="0.0" width="354" height="99"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="99.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SELECT USERNAME" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="w7B-kJ-IgM" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="354" height="19"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="19.5"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your username" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="m50-FZ-yVO" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="34" width="354" height="50"/>
<rect key="frame" x="0.0" y="34.5" width="354" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -379,7 +379,7 @@ Sent to Your Parents Email</string>
</userDefinedRuntimeAttributes>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RuI-5z-pyW">
<rect key="frame" x="0.0" y="99" width="354" height="0.0"/>
<rect key="frame" x="0.0" y="99.5" width="354" height="0.0"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -387,16 +387,16 @@ Sent to Your Parents Email</string>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="qSD-g5-OZA">
<rect key="frame" x="0.0" y="129" width="354" height="99"/>
<rect key="frame" x="0.0" y="129.5" width="354" height="99.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="WHATS YOUR NAME?" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="eZm-zl-55m" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="354" height="19"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="19.5"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your name" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="tgW-LH-XfR" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="34" width="354" height="50"/>
<rect key="frame" x="0.0" y="34.5" width="354" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -415,7 +415,7 @@ Sent to Your Parents Email</string>
</userDefinedRuntimeAttributes>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Y3K-h2-Gbg">
<rect key="frame" x="0.0" y="99" width="354" height="0.0"/>
<rect key="frame" x="0.0" y="99.5" width="354" height="0.0"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -423,16 +423,16 @@ Sent to Your Parents Email</string>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="hWX-C0-soL">
<rect key="frame" x="0.0" y="258" width="354" height="115.5"/>
<rect key="frame" x="0.0" y="259" width="354" height="116.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="CREATE YOUR PASSWORD" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Fev-AX-lcQ" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="354" height="19"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="19.5"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your password" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="4gw-z0-s4a" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="34" width="354" height="50"/>
<rect key="frame" x="0.0" y="34.5" width="354" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -451,7 +451,7 @@ Sent to Your Parents Email</string>
</userDefinedRuntimeAttributes>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Shh!! Dont share your password with anyone." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3LF-iY-Hoi" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="99" width="354" height="16.5"/>
<rect key="frame" x="0.0" y="99.5" width="354" height="17"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="14"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -829,35 +829,35 @@ Sent to Your Parents Email</string>
<rect key="frame" x="0.0" y="107.5" width="414" height="754.5"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="aNK-S5-pik">
<rect key="frame" x="0.0" y="0.0" width="414" height="760"/>
<rect key="frame" x="0.0" y="0.0" width="414" height="763.5"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Y9q-mR-AlW">
<rect key="frame" x="20" y="0.0" width="374" height="60"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</view>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="70" translatesAutoresizingMaskIntoConstraints="NO" id="Krs-Zs-R6t">
<rect key="frame" x="20" y="60" width="374" height="445"/>
<rect key="frame" x="20" y="60" width="374" height="447.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Login to WOKA" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1T4-5K-cXT" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="374" height="31.5"/>
<rect key="frame" x="0.0" y="0.0" width="374" height="32.5"/>
<fontDescription key="fontDescription" name="Exo2-ExtraBold" family="Exo 2" pointSize="27"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="30" translatesAutoresizingMaskIntoConstraints="NO" id="EhK-1C-Xey">
<rect key="frame" x="0.0" y="101.5" width="374" height="343.5"/>
<rect key="frame" x="0.0" y="102.5" width="374" height="345"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="krT-0d-tCQ">
<rect key="frame" x="0.0" y="0.0" width="374" height="99"/>
<rect key="frame" x="0.0" y="0.0" width="374" height="99.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="USERNAME" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3Xc-wy-9mu" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="374" height="19"/>
<rect key="frame" x="0.0" y="0.0" width="374" height="19.5"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your username" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="68c-1b-KSI" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="34" width="374" height="50"/>
<rect key="frame" x="0.0" y="34.5" width="374" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -876,7 +876,7 @@ Sent to Your Parents Email</string>
</userDefinedRuntimeAttributes>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JQm-yr-A2M">
<rect key="frame" x="0.0" y="99" width="374" height="0.0"/>
<rect key="frame" x="0.0" y="99.5" width="374" height="0.0"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -884,19 +884,19 @@ Sent to Your Parents Email</string>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="fVp-fO-1fH">
<rect key="frame" x="0.0" y="129" width="374" height="134.5"/>
<rect key="frame" x="0.0" y="129.5" width="374" height="135.5"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="ebQ-va-83Q">
<rect key="frame" x="0.0" y="0.0" width="374" height="99"/>
<rect key="frame" x="0.0" y="0.0" width="374" height="99.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="PASSWORD" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BcT-5f-ded" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="374" height="19"/>
<rect key="frame" x="0.0" y="0.0" width="374" height="19.5"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your password" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="iJE-dm-qal" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="34" width="374" height="50"/>
<rect key="frame" x="0.0" y="34.5" width="374" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -915,7 +915,7 @@ Sent to Your Parents Email</string>
</userDefinedRuntimeAttributes>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2YT-HL-ug7">
<rect key="frame" x="0.0" y="99" width="374" height="0.0"/>
<rect key="frame" x="0.0" y="99.5" width="374" height="0.0"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -923,7 +923,7 @@ Sent to Your Parents Email</string>
</subviews>
</stackView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yp6-2q-OZC" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="104" width="374" height="30.5"/>
<rect key="frame" x="0.0" y="104.5" width="374" height="31"/>
<color key="tintColor" name="TextDarkBlue"/>
<state key="normal" title="Button"/>
<buttonConfiguration key="configuration" style="plain" title="Forgot Password">
@@ -936,7 +936,7 @@ Sent to Your Parents Email</string>
</subviews>
</stackView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="OFt-kx-VfD" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="293.5" width="374" height="50"/>
<rect key="frame" x="0.0" y="295" width="374" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="Tle-PZ-1B4"/>
</constraints>
@@ -955,14 +955,14 @@ Sent to Your Parents Email</string>
</subviews>
</stackView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tOZ-1S-7K5">
<rect key="frame" x="20" y="505" width="374" height="120"/>
<rect key="frame" x="20" y="507.5" width="374" height="120"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</view>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="Nnb-iQ-OQs">
<rect key="frame" x="20" y="625" width="374" height="105"/>
<rect key="frame" x="20" y="627.5" width="374" height="106"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Ly3-jW-G7X" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="374" height="35"/>
<rect key="frame" x="0.0" y="0.0" width="374" height="36"/>
<color key="tintColor" name="TextDarkBlue"/>
<state key="normal" title="Button"/>
<buttonConfiguration key="configuration" style="plain" title="Continue as a Guest">
@@ -973,7 +973,7 @@ Sent to Your Parents Email</string>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="TYc-dA-ZOV" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="55" width="374" height="50"/>
<rect key="frame" x="0.0" y="56" width="374" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="sfz-a2-WZy"/>
</constraints>
@@ -990,7 +990,7 @@ Sent to Your Parents Email</string>
</subviews>
</stackView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Sb4-yj-JJ2">
<rect key="frame" x="20" y="730" width="374" height="30"/>
<rect key="frame" x="20" y="733.5" width="374" height="30"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="RxX-pL-7Ux"/>
@@ -1059,25 +1059,25 @@ Sent to Your Parents Email</string>
</constraints>
</imageView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="70" translatesAutoresizingMaskIntoConstraints="NO" id="Pjf-i3-BcY">
<rect key="frame" x="20" y="172.5" width="374" height="202"/>
<rect key="frame" x="20" y="172.5" width="374" height="203.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Forgot your Password?" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="i7M-Ob-pCE" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="10" y="0.0" width="354" height="33"/>
<rect key="frame" x="10" y="0.0" width="354" height="34"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="28"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="Jlq-Ct-Mrz">
<rect key="frame" x="10" y="103" width="354" height="99"/>
<rect key="frame" x="10" y="104" width="354" height="99.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="PLEASE GIVE US YOUR USERNAME" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fCB-jL-yE4" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="354" height="19"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="19.5"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your username" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="wy2-0C-rxG" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="34" width="354" height="50"/>
<rect key="frame" x="0.0" y="34.5" width="354" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -1096,7 +1096,7 @@ Sent to Your Parents Email</string>
</userDefinedRuntimeAttributes>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0ps-Ku-87z">
<rect key="frame" x="0.0" y="99" width="354" height="0.0"/>
<rect key="frame" x="0.0" y="99.5" width="354" height="0.0"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -1107,16 +1107,16 @@ Sent to Your Parents Email</string>
<edgeInsets key="layoutMargins" top="0.0" left="10" bottom="0.0" right="10"/>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="35" translatesAutoresizingMaskIntoConstraints="NO" id="NPA-IJ-SA5">
<rect key="frame" x="30" y="740.5" width="354" height="101.5"/>
<rect key="frame" x="30" y="740" width="354" height="102"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="We will send a reset code to their email" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uv4-iY-Z87" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="354" height="16.5"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="17"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="14"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="JJ0-wA-EP6" customClass="LocalisedElementsButton" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="51.5" width="354" height="50"/>
<rect key="frame" x="0.0" y="52" width="354" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="I7D-T4-sU1"/>
</constraints>
@@ -1179,28 +1179,28 @@ Sent to Your Parents Email</string>
</constraints>
</imageView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="70" translatesAutoresizingMaskIntoConstraints="NO" id="ph5-wC-m3B">
<rect key="frame" x="20" y="172.5" width="374" height="339.5"/>
<rect key="frame" x="20" y="172.5" width="374" height="341.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Great! Select New Password" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QGk-Uc-mER" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="10" y="0.0" width="354" height="31.5"/>
<rect key="frame" x="10" y="0.0" width="354" height="32.5"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="27"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="40" translatesAutoresizingMaskIntoConstraints="NO" id="qzU-f1-tq1">
<rect key="frame" x="10" y="101.5" width="354" height="238"/>
<rect key="frame" x="10" y="102.5" width="354" height="239"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="1na-3A-stg">
<rect key="frame" x="0.0" y="0.0" width="354" height="99"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="99.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="CREATE YOUR PASSWORD" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hYw-Vc-C9h">
<rect key="frame" x="0.0" y="0.0" width="354" height="19"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="19.5"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter new password" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Skx-Ig-91N" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="34" width="354" height="50"/>
<rect key="frame" x="0.0" y="34.5" width="354" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -1219,7 +1219,7 @@ Sent to Your Parents Email</string>
</userDefinedRuntimeAttributes>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ht0-v3-TeN">
<rect key="frame" x="0.0" y="99" width="354" height="0.0"/>
<rect key="frame" x="0.0" y="99.5" width="354" height="0.0"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -1227,16 +1227,16 @@ Sent to Your Parents Email</string>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="Rwa-zV-eg9">
<rect key="frame" x="0.0" y="139" width="354" height="99"/>
<rect key="frame" x="0.0" y="139.5" width="354" height="99.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="CONFIRM YOUR PASSWORD" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6LZ-Ed-gCK">
<rect key="frame" x="0.0" y="0.0" width="354" height="19"/>
<rect key="frame" x="0.0" y="0.0" width="354" height="19.5"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalHuggingPriority="248" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="confirm your password" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="JRR-Bk-5UP" customClass="TextFieldShadow" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="34" width="354" height="50"/>
<rect key="frame" x="0.0" y="34.5" width="354" height="50"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" name="TextDarkBlue"/>
<constraints>
@@ -1255,7 +1255,7 @@ Sent to Your Parents Email</string>
</userDefinedRuntimeAttributes>
</textField>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="B3H-EX-OA7">
<rect key="frame" x="0.0" y="99" width="354" height="0.0"/>
<rect key="frame" x="0.0" y="99.5" width="354" height="0.0"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@@ -1414,43 +1414,43 @@ Sent to Your Parents Email</string>
</scenes>
<designables>
<designable name="42K-Uu-lPQ">
<size key="intrinsicContentSize" width="6.5" height="22.5"/>
<size key="intrinsicContentSize" width="8.5" height="23.5"/>
</designable>
<designable name="4gw-z0-s4a">
<size key="intrinsicContentSize" width="198" height="19"/>
<size key="intrinsicContentSize" width="200.5" height="20"/>
</designable>
<designable name="68c-1b-KSI">
<size key="intrinsicContentSize" width="199" height="20.5"/>
<size key="intrinsicContentSize" width="201.5" height="21"/>
</designable>
<designable name="81S-Fa-CiD">
<size key="intrinsicContentSize" width="6.5" height="22.5"/>
<size key="intrinsicContentSize" width="8.5" height="23.5"/>
</designable>
<designable name="DSB-Ge-wNO">
<size key="intrinsicContentSize" width="209" height="20.5"/>
<size key="intrinsicContentSize" width="210" height="21"/>
</designable>
<designable name="Hcd-Mm-IxW">
<size key="intrinsicContentSize" width="6.5" height="22.5"/>
<size key="intrinsicContentSize" width="8.5" height="23.5"/>
</designable>
<designable name="JRR-Bk-5UP">
<size key="intrinsicContentSize" width="214.5" height="19"/>
<size key="intrinsicContentSize" width="218" height="20"/>
</designable>
<designable name="MpT-bm-drv">
<size key="intrinsicContentSize" width="6.5" height="22.5"/>
<size key="intrinsicContentSize" width="8.5" height="23.5"/>
</designable>
<designable name="Skx-Ig-91N">
<size key="intrinsicContentSize" width="196.5" height="19"/>
<size key="intrinsicContentSize" width="199" height="20"/>
</designable>
<designable name="iJE-dm-qal">
<size key="intrinsicContentSize" width="198" height="19"/>
<size key="intrinsicContentSize" width="200.5" height="20"/>
</designable>
<designable name="m50-FZ-yVO">
<size key="intrinsicContentSize" width="199" height="20.5"/>
<size key="intrinsicContentSize" width="201.5" height="21"/>
</designable>
<designable name="tgW-LH-XfR">
<size key="intrinsicContentSize" width="168" height="20.5"/>
<size key="intrinsicContentSize" width="169.5" height="21"/>
</designable>
<designable name="wy2-0C-rxG">
<size key="intrinsicContentSize" width="199" height="20.5"/>
<size key="intrinsicContentSize" width="201.5" height="21"/>
</designable>
</designables>
<resources>

View File

@@ -17,6 +17,21 @@ extension UIView {
/// - endPoint: The end point of the gradient, defined in the unit coordinate space. The end point corresponds to the bottom-right corner of the layer's bounds rectangle.
///
func applyGradient(colors: [UIColor], startPoint: CGPoint, endPoint: CGPoint) {
// Check if the view already has a gradient layer
if let sublayers = layer.sublayers {
for sublayer in sublayers {
if let gradientLayer = sublayer as? CAGradientLayer {
// Update the existing gradient layer
gradientLayer.colors = colors.map { $0.cgColor }
gradientLayer.startPoint = startPoint
gradientLayer.endPoint = endPoint
gradientLayer.frame = bounds
return
}
}
}
// Create a new CAGradientLayer instance
let gradientLayer = CAGradientLayer()

View File

@@ -12,23 +12,57 @@ class HomeVC: UIViewController {
@IBOutlet weak var gradientView: UIView!
@IBOutlet weak var cloud2: UIImageView!
@IBOutlet weak var cloud1: UIImageView!
@IBOutlet weak var liveTVView: UIView!
@IBOutlet weak var liveTvPlayer: UIView!
@IBOutlet weak var homeGrass: UIImageView!
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var welcomeLabel: LocalisedElementsLabel!
var cloudMovingRight = false // Flag to track the direction of movement
var isMovingRight = false // Flag to track the direction of movement
var timer: Timer?
override func viewDidLoad() {
super.viewDidLoad()
// let color1 = #colorLiteral(red: 0.3490196078, green: 0.8156862745, blue: 0.9960784314, alpha: 1)
// let color2 = #colorLiteral(red: 0.6901960784, green: 0.2745098039, blue: 0.7568627451, alpha: 1)
// gradientView.applyGradient(colors: [color1, color2], startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0.8, y: 0))
// Do any additional setup after loading the view.
// customizeTabBarItemIconSize()
// moveIt(cloud2,10)
moveView()
var vm = HomeVM()
deinit{
timer?.invalidate()
}
func moveView() {
UIView.animate(withDuration: 23, delay: 0, options: [.autoreverse], animations: {
override func viewDidLoad() {
super.viewDidLoad()
vm.vc = self
vm.initView()
moveCloudView()
moveLiveTVView()
}
func moveLiveTVView() {
UIView.animate(withDuration: 6, delay: 0, options: [.allowUserInteraction], animations: {
let margin: CGFloat = 30
let screenWidth = self.view.frame.width
let viewWidth = self.liveTVView.frame.width
let maxX = screenWidth - margin - viewWidth / 2
let minX = margin + viewWidth / 2
if self.isMovingRight {
self.liveTVView.center.x = maxX // Move to the right
} else {
self.liveTVView.center.x = minX // Move to the left
}
}, completion: { _ in
self.isMovingRight.toggle() // Toggle the direction for the next iteration
self.moveLiveTVView() // Recursively call moveLiveTVView to create a continuous animation
})
}
func moveCloudView() {
UIView.animate(withDuration: 23, delay: 0, options: [], animations: {
if self.cloudMovingRight {
print("right")
self.cloud2.center.x += 140 // Move to the right
self.cloud1.center.x -= 140 // Move to the right
@@ -38,22 +72,11 @@ class HomeVC: UIViewController {
self.cloud1.center.x += 140 // Move to the left
}
}, completion: { _ in
self.isMovingRight.toggle() // Toggle the direction for the next iteration
self.moveView() // Recursively call moveView to create a continuous animation
})
}
func moveIt(_ imageView: UIImageView,_ speed:CGFloat) {
let speeds = speed
let imageSpeed = speeds / view.frame.size.width
let averageSpeed = (view.frame.size.width - imageView.frame.origin.x) * imageSpeed
UIView.animate(withDuration: TimeInterval(averageSpeed), delay: 0.0, options: .curveLinear, animations: {
imageView.frame.origin.x = self.view.frame.size.width
}, completion: { (_) in
imageView.frame.origin.x = -imageView.frame.size.width
self.moveIt(imageView,speeds)
self.cloudMovingRight.toggle() // Toggle the direction for the next iteration
self.moveCloudView() // Recursively call moveView to create a continuous animation
})
}
// Define a function to customize tab bar item icon size
func customizeTabBarItemIconSize() {

View File

@@ -12,6 +12,9 @@
<array key="Exo2-Bold.ttf">
<string>Exo2-Bold</string>
</array>
<array key="Exo2-Regular.ttf">
<string>Exo2-Regular</string>
</array>
</customFonts>
<scenes>
<!--Side Menu Controller-->
@@ -406,17 +409,93 @@
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="m2u-Pj-U0D">
<rect key="frame" x="0.0" y="0.0" width="414" height="548"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5Eq-Oq-9AL">
<rect key="frame" x="15" y="35" width="76" height="76"/>
<constraints>
<constraint firstAttribute="width" secondItem="5Eq-Oq-9AL" secondAttribute="height" multiplier="1:1" id="q5L-fE-w65"/>
</constraints>
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
<state key="normal" image="FM"/>
</button>
</subviews>
<color key="backgroundColor" red="0.34901960784313724" green="0.81568627450980391" blue="0.99607843137254903" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="5Eq-Oq-9AL" firstAttribute="leading" secondItem="m2u-Pj-U0D" secondAttribute="leading" constant="15" id="C84-50-AgR"/>
</constraints>
</view>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="mOn-7d-NqJ">
<rect key="frame" x="119.5" y="45" width="175" height="103.5"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Boy" translatesAutoresizingMaskIntoConstraints="NO" id="cgD-MF-7c5">
<rect key="frame" x="0.0" y="0.0" width="175" height="50"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Hi, Vijay" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iQh-vn-18l">
<rect key="frame" x="0.0" y="55" width="175" height="24"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="20"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Welcome to WOKALAND" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6Rn-fG-lxC" customClass="LocalisedElementsLabel" customModule="WOKA" customModuleProvider="target">
<rect key="frame" x="0.0" y="84" width="175" height="19.5"/>
<fontDescription key="fontDescription" name="Exo2-Regular" family="Exo 2" pointSize="16"/>
<color key="textColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Cloud1" translatesAutoresizingMaskIntoConstraints="NO" id="pks-MR-Gld">
<rect key="frame" x="-173" y="326" width="760" height="180"/>
<rect key="frame" x="-173" y="366" width="760" height="180"/>
<constraints>
<constraint firstAttribute="width" constant="760" id="KGQ-GJ-A4b"/>
<constraint firstAttribute="height" constant="180" id="xGk-zI-sgL"/>
</constraints>
</imageView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Vme-Ws-6Bd">
<rect key="frame" x="112" y="178.5" width="190" height="190"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="LiveTVBaloon" translatesAutoresizingMaskIntoConstraints="NO" id="HNh-fd-6x5">
<rect key="frame" x="25" y="0.0" width="146" height="85.5"/>
</imageView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6gU-Sv-Xrz">
<rect key="frame" x="0.0" y="27.5" width="190" height="162.5"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="s2C-zU-CXJ">
<rect key="frame" x="15" y="45" width="160" height="107.5"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
</view>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="LiveTVBorder" translatesAutoresizingMaskIntoConstraints="NO" id="7Ki-kV-CFa">
<rect key="frame" x="0.0" y="0.0" width="190" height="162.5"/>
</imageView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="s2C-zU-CXJ" firstAttribute="top" secondItem="6gU-Sv-Xrz" secondAttribute="top" constant="45" id="6rl-se-w3J"/>
<constraint firstItem="7Ki-kV-CFa" firstAttribute="leading" secondItem="6gU-Sv-Xrz" secondAttribute="leading" id="BHg-uC-xXs"/>
<constraint firstItem="s2C-zU-CXJ" firstAttribute="leading" secondItem="6gU-Sv-Xrz" secondAttribute="leading" constant="15" id="EQK-PW-y7M"/>
<constraint firstItem="7Ki-kV-CFa" firstAttribute="top" secondItem="6gU-Sv-Xrz" secondAttribute="top" id="EaW-xf-olL"/>
<constraint firstAttribute="bottom" secondItem="s2C-zU-CXJ" secondAttribute="bottom" constant="10" id="OTN-3G-Y6O"/>
<constraint firstAttribute="bottom" secondItem="7Ki-kV-CFa" secondAttribute="bottom" id="QQa-1I-HBa"/>
<constraint firstAttribute="trailing" secondItem="s2C-zU-CXJ" secondAttribute="trailing" constant="15" id="niJ-3z-T0t"/>
<constraint firstAttribute="trailing" secondItem="7Ki-kV-CFa" secondAttribute="trailing" id="uza-Pd-6Rw"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="6gU-Sv-Xrz" firstAttribute="top" secondItem="HNh-fd-6x5" secondAttribute="bottom" constant="-58" id="2EZ-Gu-Nxm"/>
<constraint firstItem="HNh-fd-6x5" firstAttribute="top" secondItem="Vme-Ws-6Bd" secondAttribute="top" id="71E-LE-qab"/>
<constraint firstItem="6gU-Sv-Xrz" firstAttribute="leading" secondItem="Vme-Ws-6Bd" secondAttribute="leading" id="Ff9-qW-lwZ"/>
<constraint firstItem="HNh-fd-6x5" firstAttribute="width" secondItem="Vme-Ws-6Bd" secondAttribute="width" multiplier="0.768473" id="IMs-rq-39u"/>
<constraint firstItem="HNh-fd-6x5" firstAttribute="height" secondItem="Vme-Ws-6Bd" secondAttribute="height" multiplier="0.45" id="aWW-Ku-fIJ"/>
<constraint firstItem="HNh-fd-6x5" firstAttribute="centerX" secondItem="Vme-Ws-6Bd" secondAttribute="centerX" constant="3" id="eWP-C5-zik"/>
<constraint firstAttribute="width" secondItem="Vme-Ws-6Bd" secondAttribute="height" multiplier="6:6" id="exp-n0-IqT"/>
<constraint firstAttribute="trailing" secondItem="6gU-Sv-Xrz" secondAttribute="trailing" id="l4s-BG-Ky7"/>
<constraint firstAttribute="bottom" secondItem="6gU-Sv-Xrz" secondAttribute="bottom" id="y0M-oh-fnw"/>
</constraints>
</view>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Cloud2" translatesAutoresizingMaskIntoConstraints="NO" id="epD-0a-kfb">
<rect key="frame" x="-173" y="396" width="760" height="154"/>
<rect key="frame" x="-173" y="436" width="760" height="154"/>
<constraints>
<constraint firstAttribute="width" constant="760" id="vz6-jX-Lvo"/>
</constraints>
@@ -435,11 +514,45 @@
<action selector="barButtonTapped:" destination="zvD-eW-9c3" eventType="touchUpInside" id="7Ly-MJ-OWB"/>
</connections>
</button>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="redraw" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="HomeGrass" translatesAutoresizingMaskIntoConstraints="NO" id="hMh-hI-J6A">
<rect key="frame" x="0.0" y="396" width="414" height="500"/>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="redraw" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="HomeGrassDay" translatesAutoresizingMaskIntoConstraints="NO" id="hMh-hI-J6A">
<rect key="frame" x="0.0" y="436" width="414" height="460"/>
</imageView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillProportionally" spacing="1" translatesAutoresizingMaskIntoConstraints="NO" id="Qjx-9F-LBh">
<rect key="frame" x="10" y="466" width="100" height="100"/>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillProportionally" spacing="1" translatesAutoresizingMaskIntoConstraints="NO" id="Vkd-kJ-gqX" userLabel="Shop">
<rect key="frame" x="304" y="416" width="100" height="100"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Shop" translatesAutoresizingMaskIntoConstraints="NO" id="i14-lA-FWT">
<rect key="frame" x="0.0" y="0.0" width="100" height="89.5"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SHOP" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="S8P-2V-Mkh">
<rect key="frame" x="0.0" y="90.5" width="100" height="9.5"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstAttribute="width" secondItem="Vkd-kJ-gqX" secondAttribute="height" multiplier="1:1" id="Rnv-NA-6Pg"/>
</constraints>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillProportionally" spacing="1" translatesAutoresizingMaskIntoConstraints="NO" id="phZ-0l-RPJ" userLabel="LiveTV">
<rect key="frame" x="149" y="483" width="100" height="100"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="LiveTV" translatesAutoresizingMaskIntoConstraints="NO" id="PdC-4U-VEd">
<rect key="frame" x="0.0" y="0.0" width="100" height="88"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="LIVE TV" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5Ej-xM-nR1">
<rect key="frame" x="0.0" y="89" width="100" height="11"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstAttribute="width" secondItem="phZ-0l-RPJ" secondAttribute="height" multiplier="1:1" id="QkE-e0-7a8"/>
</constraints>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillProportionally" spacing="1" translatesAutoresizingMaskIntoConstraints="NO" id="Qjx-9F-LBh" userLabel="WebSeries">
<rect key="frame" x="20" y="520" width="100" height="100"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="WebSeries" translatesAutoresizingMaskIntoConstraints="NO" id="ZVx-7J-ain">
<rect key="frame" x="0.0" y="0.0" width="100" height="87.5"/>
@@ -453,7 +566,57 @@
</subviews>
<constraints>
<constraint firstAttribute="width" secondItem="Qjx-9F-LBh" secondAttribute="height" multiplier="1:1" id="9Ld-zA-RS8"/>
<constraint firstAttribute="height" constant="100" id="ZRh-cV-JNo"/>
</constraints>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillProportionally" spacing="1" translatesAutoresizingMaskIntoConstraints="NO" id="oep-bE-g5s" userLabel="Karaoke">
<rect key="frame" x="35" y="670" width="100" height="100"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Karaoke" translatesAutoresizingMaskIntoConstraints="NO" id="dVL-Oo-Gto">
<rect key="frame" x="0.0" y="0.0" width="100" height="89"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="KARAOKE" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yYL-Fl-OKu">
<rect key="frame" x="0.0" y="90" width="100" height="10"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstAttribute="width" secondItem="oep-bE-g5s" secondAttribute="height" multiplier="1:1" id="bba-gq-xcA"/>
</constraints>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillProportionally" spacing="1" translatesAutoresizingMaskIntoConstraints="NO" id="kW7-M6-qQK" userLabel="Audio Books">
<rect key="frame" x="200" y="660" width="100" height="100"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="AudioBooks" translatesAutoresizingMaskIntoConstraints="NO" id="xdQ-iI-pAE">
<rect key="frame" x="0.0" y="0.0" width="100" height="87.5"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="AUDIO BOOKS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MeN-SG-Vmg">
<rect key="frame" x="0.0" y="88.5" width="100" height="11.5"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstAttribute="width" secondItem="kW7-M6-qQK" secondAttribute="height" multiplier="1:1" id="Uii-GB-rQd"/>
</constraints>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillProportionally" spacing="1" translatesAutoresizingMaskIntoConstraints="NO" id="LQZ-YD-zMa" userLabel="Games">
<rect key="frame" x="304" y="570" width="100" height="100"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Games" translatesAutoresizingMaskIntoConstraints="NO" id="Ytc-Dt-d06">
<rect key="frame" x="0.0" y="0.0" width="100" height="88.5"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="GAMES" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BXD-kP-WJc">
<rect key="frame" x="0.0" y="89.5" width="100" height="10.5"/>
<fontDescription key="fontDescription" name="Exo2-Bold" family="Exo 2" pointSize="13"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstAttribute="width" secondItem="LQZ-YD-zMa" secondAttribute="height" multiplier="1:1" id="DSD-uU-Vdn"/>
</constraints>
</stackView>
</subviews>
@@ -462,20 +625,42 @@
<color key="tintColor" red="0.035294117649999998" green="0.0" blue="0.36470588240000001" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstItem="Y8i-Lx-Cjg" firstAttribute="trailing" secondItem="hMh-hI-J6A" secondAttribute="trailing" id="2vc-Wa-YQj"/>
<constraint firstItem="Vkd-kJ-gqX" firstAttribute="top" secondItem="hMh-hI-J6A" secondAttribute="top" constant="-20" id="3PS-Oa-YM7"/>
<constraint firstItem="epD-0a-kfb" firstAttribute="top" secondItem="hMh-hI-J6A" secondAttribute="top" id="4b6-kv-O2u"/>
<constraint firstItem="m2u-Pj-U0D" firstAttribute="height" secondItem="6gC-IE-A1o" secondAttribute="height" multiplier="0.611607" id="52b-Ep-tk9"/>
<constraint firstItem="Qjx-9F-LBh" firstAttribute="height" secondItem="6gC-IE-A1o" secondAttribute="height" multiplier="0.111607" id="5eq-0x-KAs"/>
<constraint firstItem="hMh-hI-J6A" firstAttribute="height" secondItem="6gC-IE-A1o" secondAttribute="height" multiplier="0.513393" id="5fu-aG-WIw"/>
<constraint firstItem="epD-0a-kfb" firstAttribute="height" secondItem="6gC-IE-A1o" secondAttribute="height" multiplier="0.171875" id="627-QY-zgV"/>
<constraint firstItem="Qjx-9F-LBh" firstAttribute="leading" secondItem="Y8i-Lx-Cjg" secondAttribute="leading" constant="10" id="Lre-qa-d6k"/>
<constraint firstItem="Vkd-kJ-gqX" firstAttribute="trailing" secondItem="hMh-hI-J6A" secondAttribute="trailing" constant="-10" id="75k-9A-269"/>
<constraint firstItem="Vkd-kJ-gqX" firstAttribute="leading" secondItem="phZ-0l-RPJ" secondAttribute="trailing" constant="55" id="86z-zd-WcS"/>
<constraint firstItem="Vme-Ws-6Bd" firstAttribute="centerX" secondItem="Y8i-Lx-Cjg" secondAttribute="centerX" id="D5F-iU-os7"/>
<constraint firstItem="phZ-0l-RPJ" firstAttribute="height" secondItem="6gC-IE-A1o" secondAttribute="height" multiplier="0.111607" id="Da9-e8-c0Z"/>
<constraint firstItem="mOn-7d-NqJ" firstAttribute="centerX" secondItem="Y8i-Lx-Cjg" secondAttribute="centerX" id="HYF-SU-Svf"/>
<constraint firstItem="Ytc-Dt-d06" firstAttribute="height" secondItem="6gC-IE-A1o" secondAttribute="height" multiplier="0.0987723" id="K9I-TE-IHr"/>
<constraint firstItem="LQZ-YD-zMa" firstAttribute="centerX" secondItem="Vkd-kJ-gqX" secondAttribute="centerX" id="KHt-wi-tUz"/>
<constraint firstItem="pks-MR-Gld" firstAttribute="centerX" secondItem="Y8i-Lx-Cjg" secondAttribute="centerX" id="MC5-JJ-Hez"/>
<constraint firstItem="Vkd-kJ-gqX" firstAttribute="baseline" secondItem="phZ-0l-RPJ" secondAttribute="firstBaseline" constant="30" id="MCy-Vq-TcU"/>
<constraint firstItem="m2u-Pj-U0D" firstAttribute="leading" secondItem="Y8i-Lx-Cjg" secondAttribute="leading" id="Nxy-Df-Dem"/>
<constraint firstItem="Wyt-mn-spz" firstAttribute="top" secondItem="Y8i-Lx-Cjg" secondAttribute="top" constant="5" id="QqO-2g-qlE"/>
<constraint firstItem="oep-bE-g5s" firstAttribute="leading" secondItem="Y8i-Lx-Cjg" secondAttribute="leading" constant="35" id="R5j-4l-snP"/>
<constraint firstItem="epD-0a-kfb" firstAttribute="centerX" secondItem="Y8i-Lx-Cjg" secondAttribute="centerX" id="S0T-Up-N3g"/>
<constraint firstItem="m2u-Pj-U0D" firstAttribute="trailing" secondItem="Y8i-Lx-Cjg" secondAttribute="trailing" id="SpD-7V-7jJ"/>
<constraint firstItem="Qjx-9F-LBh" firstAttribute="top" secondItem="hMh-hI-J6A" secondAttribute="top" constant="70" id="TfP-RQ-B9g"/>
<constraint firstItem="kW7-M6-qQK" firstAttribute="leading" secondItem="oep-bE-g5s" secondAttribute="trailing" constant="65" id="T8j-57-kY1"/>
<constraint firstItem="epD-0a-kfb" firstAttribute="top" secondItem="pks-MR-Gld" secondAttribute="bottom" constant="-110" id="Txs-pD-lJY"/>
<constraint firstItem="Vme-Ws-6Bd" firstAttribute="height" secondItem="6gC-IE-A1o" secondAttribute="height" multiplier="0.212054" id="U9u-3m-8fI"/>
<constraint firstItem="Qjx-9F-LBh" firstAttribute="leading" secondItem="Y8i-Lx-Cjg" secondAttribute="leading" constant="20" id="VQe-O8-SNl"/>
<constraint firstItem="oep-bE-g5s" firstAttribute="top" secondItem="Qjx-9F-LBh" secondAttribute="bottom" constant="50" id="WYA-zr-tfS"/>
<constraint firstItem="oep-bE-g5s" firstAttribute="height" secondItem="6gC-IE-A1o" secondAttribute="height" multiplier="0.111607" id="Xl9-77-6ZE"/>
<constraint firstItem="phZ-0l-RPJ" firstAttribute="baseline" secondItem="Qjx-9F-LBh" secondAttribute="firstBaseline" constant="60" id="Yrl-vd-Ykt"/>
<constraint firstItem="kW7-M6-qQK" firstAttribute="width" secondItem="6gC-IE-A1o" secondAttribute="height" multiplier="25:224" id="aCw-y7-WCv"/>
<constraint firstItem="kW7-M6-qQK" firstAttribute="centerY" secondItem="oep-bE-g5s" secondAttribute="centerY" constant="-10" id="c6G-D7-v7i"/>
<constraint firstItem="hMh-hI-J6A" firstAttribute="leading" secondItem="Y8i-Lx-Cjg" secondAttribute="leading" id="eXy-J7-aJo"/>
<constraint firstItem="Vme-Ws-6Bd" firstAttribute="top" secondItem="mOn-7d-NqJ" secondAttribute="bottom" constant="30" id="hf1-NU-B0T"/>
<constraint firstItem="5Eq-Oq-9AL" firstAttribute="centerY" secondItem="Wyt-mn-spz" secondAttribute="centerY" id="kmn-a1-MVg"/>
<constraint firstItem="m2u-Pj-U0D" firstAttribute="top" secondItem="6gC-IE-A1o" secondAttribute="top" id="lTI-qQ-uG3"/>
<constraint firstItem="hMh-hI-J6A" firstAttribute="height" secondItem="6gC-IE-A1o" secondAttribute="height" multiplier="0.558036" id="p6V-ds-0Dk"/>
<constraint firstItem="LQZ-YD-zMa" firstAttribute="top" secondItem="Qjx-9F-LBh" secondAttribute="top" constant="50" id="mPl-sh-cN4"/>
<constraint firstItem="mOn-7d-NqJ" firstAttribute="top" secondItem="5Eq-Oq-9AL" secondAttribute="top" constant="10" id="me5-Rb-7Da"/>
<constraint firstItem="Vkd-kJ-gqX" firstAttribute="height" secondItem="6gC-IE-A1o" secondAttribute="height" multiplier="0.111607" id="tp3-Cd-gUG"/>
<constraint firstItem="Y8i-Lx-Cjg" firstAttribute="trailing" secondItem="Wyt-mn-spz" secondAttribute="trailing" constant="15" id="u67-sY-Tz5"/>
<constraint firstItem="hMh-hI-J6A" firstAttribute="bottom" secondItem="6gC-IE-A1o" secondAttribute="bottom" id="uCB-BK-Uds"/>
</constraints>
@@ -495,6 +680,11 @@
<outlet property="cloud1" destination="pks-MR-Gld" id="WsT-VT-30r"/>
<outlet property="cloud2" destination="epD-0a-kfb" id="l7h-Er-eKN"/>
<outlet property="gradientView" destination="m2u-Pj-U0D" id="3KF-2v-bPq"/>
<outlet property="homeGrass" destination="hMh-hI-J6A" id="5lH-YA-lJY"/>
<outlet property="liveTVView" destination="Vme-Ws-6Bd" id="ijU-CX-J8l"/>
<outlet property="liveTvPlayer" destination="s2C-zU-CXJ" id="cEc-C5-uXb"/>
<outlet property="nameLabel" destination="iQh-vn-18l" id="kqR-Xp-54k"/>
<outlet property="welcomeLabel" destination="6Rn-fG-lxC" id="2Se-Vf-Agw"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="ufW-nJ-WRj" sceneMemberID="firstResponder"/>
@@ -637,13 +827,22 @@
</scene>
</scenes>
<resources>
<image name="AudioBooks" width="172" height="120"/>
<image name="Boy" width="49.5" height="50"/>
<image name="CloseIcon" width="61.333332061767578" height="61.333332061767578"/>
<image name="Cloud1" width="2469.666748046875" height="734.66668701171875"/>
<image name="Cloud2" width="2469.333251953125" height="354.66665649414062"/>
<image name="ExploreWoka" width="36.5" height="25"/>
<image name="FM" width="76" height="76"/>
<image name="Games" width="164" height="130.5"/>
<image name="HeartIcon" width="26.5" height="26.5"/>
<image name="HomeGrass" width="285.33334350585938" height="307.33334350585938"/>
<image name="HomeGrassDay" width="570.66668701171875" height="641.33331298828125"/>
<image name="HomeIcon" width="26.5" height="26.5"/>
<image name="Karaoke" width="172" height="137"/>
<image name="LiveTV" width="172" height="122.5"/>
<image name="LiveTVBaloon" width="135" height="135"/>
<image name="LiveTVBorder" width="79.333335876464844" height="67"/>
<image name="Shop" width="165" height="148"/>
<image name="SideMenu" width="44" height="44"/>
<image name="Theme1" width="106" height="160"/>
<image name="Theme2" width="106" height="160"/>

View File

@@ -0,0 +1,80 @@
//
// TimePeriod.swift
// WOKA
//
// Created by MacBook Pro on 23/05/24.
//
import UIKit
// Enumeration representing different periods of the day, each with a start time, end time, and two colors.
enum TimePeriod : Equatable{
// Enumeration cases for different periods of the day with associated values.
case morning(startTime: String, endTime: String, color1: UIColor, color2: UIColor, grass: String, textColor: UIColor)
case afternoon(startTime: String, endTime: String, color1: UIColor, color2: UIColor, grass: String, textColor: UIColor)
case evening(startTime: String, endTime: String, color1: UIColor, color2: UIColor, grass: String, textColor: UIColor)
case night(startTime: String, endTime: String, color1: UIColor, color2: UIColor, grass: String, textColor: UIColor)
// Computed property to get the details of each time period as a tuple.
var details: (startTime: String, endTime: String, color1: UIColor, color2: UIColor, grass: String, textColor: UIColor) {
switch self {
case .morning(let startTime, let endTime, let color1, let color2, let grass, let textColor):
return (startTime, endTime, color1, color2, grass, textColor)
case .afternoon(let startTime, let endTime, let color1, let color2, let grass, let textColor):
return (startTime, endTime, color1, color2, grass, textColor)
case .evening(let startTime, let endTime, let color1, let color2, let grass, let textColor):
return (startTime, endTime, color1, color2, grass, textColor)
case .night(let startTime, let endTime, let color1, let color2, let grass, let textColor):
return (startTime, endTime, color1, color2, grass, textColor)
}
}
// Function to check if a given current time falls within the time period.
func contains(currentTime: Date) -> Bool {
let formatter = DateFormatter()
formatter.dateFormat = "HH:mm"
guard let start = formatter.date(from: details.startTime),
let end = formatter.date(from: details.endTime) else { return false }
return isTime(currentTime, between: start, and: end)
}
// Equatable protocol conformance to compare two TimePeriod instances.
static func ==(lhs: TimePeriod, rhs: TimePeriod) -> Bool {
switch (lhs, rhs) {
case let (.morning(startTime1, endTime1, color11, color12, grass1, textColor1), .morning(startTime2, endTime2, color21, color22, grass2, textColor2)),
let (.afternoon(startTime1, endTime1, color11, color12, grass1, textColor1), .afternoon(startTime2, endTime2, color21, color22, grass2, textColor2)),
let (.evening(startTime1, endTime1, color11, color12, grass1, textColor1), .evening(startTime2, endTime2, color21, color22, grass2, textColor2)),
let (.night(startTime1, endTime1, color11, color12, grass1, textColor1), .night(startTime2, endTime2, color21, color22, grass2, textColor2)):
return startTime1 == startTime2 && endTime1 == endTime2 && color11 == color21 && color12 == color22 && grass1 == grass2 && textColor1 == textColor2
default:
return false
}
}
// Helper function to check if a given time falls between a start and end time.
func isTime(_ time: Date, between startTime: Date, and endTime: Date) -> Bool {
let calendar = Calendar.current
let currentComponents = calendar.dateComponents([.hour, .minute], from: time)
let startComponents = calendar.dateComponents([.hour, .minute], from: startTime)
let endComponents = calendar.dateComponents([.hour, .minute], from: endTime)
guard let currentHour = currentComponents.hour, let currentMinute = currentComponents.minute,
let startHour = startComponents.hour, let startMinute = startComponents.minute,
let endHour = endComponents.hour, let endMinute = endComponents.minute else {
return false
}
let currentTotalMinutes = currentHour * 60 + currentMinute
let startTotalMinutes = startHour * 60 + startMinute
let endTotalMinutes = endHour * 60 + endMinute
if startTotalMinutes <= endTotalMinutes {
// Regular case where the time period does not cross midnight.
return currentTotalMinutes >= startTotalMinutes && currentTotalMinutes <= endTotalMinutes
} else {
// Special case where the time period crosses midnight.
return currentTotalMinutes >= startTotalMinutes || currentTotalMinutes <= endTotalMinutes
}
}
}

View File

@@ -0,0 +1,111 @@
//
// HomeVM.swift
// WOKA
//
// Created by MacBook Pro on 23/05/24.
//
import UIKit
class HomeVM{
weak var vc : HomeVC!
func initView(){
AuthFunc.shareInstance.initTimePeriods()
startInitialTimer()
addTapGestureToMovingView()
}
// MARK: - LiveTV Tap Handling
private func addTapGestureToMovingView(){
let tap = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:)))
vc.liveTVView.addGestureRecognizer(tap)
vc.liveTVView.isUserInteractionEnabled = true
}
// function which is triggered when handleTap is called
@objc func handleTap(_ sender: UITapGestureRecognizer) {
print("tapped")
// let vc = self.storyboard?.instantiateViewController(identifier: "ViewController") as! ViewController
//
// DispatchQueue.main.async {
// do {
// // Create a JWMediaTrack with the thumbnails .vtt file
// // let thumbnailTrack = try JWThumbnailTrackBuilder()
// // .file(URL(string:"https://content.jwplatform.com/videos/Agy4RIje-Ysj2G4DQ.mp4")!)
// // .build()
//
// // Create a JWPlayerItem
// let item = try JWPlayerItemBuilder()
// .file(URL(string:self.videoStreamURL)!)
// .title("Testing Title")
// .posterImage(URL(string: "https://img.freepik.com/free-photo/painting-mountain-lake-with-mountain-background_188544-9126.jpg")!)
// // .mediaTracks([thumbnailTrack])
// .build()
//
// // Create a config, and give it the item as a playlist.
// let config = try JWPlayerConfigurationBuilder()
// .playlist(items: [item])
// .autostart(true)
// .preload(.auto)
// .repeatContent(true)
// .build()
//
// vc.config = config
// }
// catch {
// // Handle Error
// }
// vc.dismissTapped = self.tapped
//
// vc.modalPresentationStyle = .overFullScreen
// self.present(vc, animated: false) {
// self.stopLiveStream()
// vc.transitionToFullScreen(animated: true) {
// print("FullScreen")
// }
//// vc.setDeviceOrientation(orientation: .landscapeRight)
// }
//// self.navigationController?.pushViewController(vc, animated: true)
// }
}
// MARK: - Handle Time Change
@objc func handleBackground(){
let currentTime = Date()
for period in AuthFunc.shareInstance.timePeriods {
if period.contains(currentTime: currentTime) {
let details = period.details
// Update view's background color with a gradient or single color
vc.gradientView.applyGradient(colors: [details.color1, details.color2], startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0, y: 0.8))
vc.nameLabel.textColor = details.textColor
vc.welcomeLabel.textColor = details.textColor
vc.homeGrass.image = UIImage(named: details.grass)
break
}
}
}
func startInitialTimer() {
self.handleBackground()
let now = Date()
let nextMinute = Calendar.current.nextDate(after: now, matching: DateComponents(second: 0), matchingPolicy: .nextTime)!
let timeInterval = nextMinute.timeIntervalSince(now)
// Schedule the initial timer to fire at the start of the next minute
vc.timer = Timer.scheduledTimer(timeInterval: timeInterval, target: self, selector: #selector(startRepeatingTimer), userInfo: nil, repeats: false)
}
@objc func startRepeatingTimer() {
// Handle the minute change when the initial timer fires
self.handleBackground()
// Schedule the repeating timer to fire every minute
vc.timer = Timer.scheduledTimer(timeInterval: 60, target: self, selector: #selector(handleBackground), userInfo: nil, repeats: false)
}
}

View File

@@ -33,7 +33,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
configureSideBar()
return true
}
// MARK: UISceneSession Lifecycle
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {

View File

@@ -30,6 +30,9 @@ class AuthFunc{
// Singleton instance of AuthFunc
static let shareInstance = AuthFunc()
//Handling Time Changes on Home
var timePeriods = [TimePeriod]()
// Returns the device's UUID
func getDeviceUUID() -> String{
/*

View File

@@ -0,0 +1,53 @@
//
// AuthFuncTimeHandling.swift
// WOKA
//
// Created by MacBook Pro on 23/05/24.
//
import UIKit
extension AuthFunc{
func initTimePeriods(){
// Define the time periods
let morning = TimePeriod.morning(
startTime: "06:00",
endTime: "11:00",
color1: #colorLiteral(red: 0.6509803922, green: 0.8862745098, blue: 0.8196078431, alpha: 1),
color2: #colorLiteral(red: 0.9529411765, green: 0.9843137255, blue: 0.7137254902, alpha: 1),
grass: "HomeGrassDay",
textColor : UIColor.appColor(.TextDarkBlue)!
)
let afternoon = TimePeriod.afternoon(
startTime: "11:01",
endTime: "16:30",
color1: #colorLiteral(red: 0.1333333333, green: 0.7294117647, blue: 0.9960784314, alpha: 1),
color2: #colorLiteral(red: 0.5921568627, green: 0.9098039216, blue: 0.9960784314, alpha: 1),
grass: "HomeGrassDay",
textColor : UIColor.appColor(.TextDarkBlue)!
)
let evening = TimePeriod.evening(
startTime: "16:31",
endTime: "18:30",
color1: #colorLiteral(red: 0.8196078431, green: 0.3333333333, blue: 0.4705882353, alpha: 1),
color2: #colorLiteral(red: 1, green: 0.7764705882, blue: 0.4, alpha: 1),
grass: "HomeGrassDay",
textColor : UIColor.appColor(.TextDarkBlue)!
)
let night = TimePeriod.night(
startTime: "18:31",
endTime: "05:59",
color1: #colorLiteral(red: 0.2705882353, green: 0.2156862745, blue: 0.5176470588, alpha: 1),
color2: #colorLiteral(red: 0.3764705882, green: 0.3803921569, blue: 0.7843137255, alpha: 1),
grass: "HomeGrassNight",
textColor : UIColor.white
)
self.timePeriods = [morning,afternoon,evening,night]
}
}