From 00715960947d8198e1a921bee3fe650c6688f4a6 Mon Sep 17 00:00:00 2001 From: Leonardo Oliveira Date: Mon, 27 May 2019 18:01:29 -0300 Subject: [PATCH] Bronze e Prata --- .DS_Store | Bin 0 -> 6148 bytes UIAnimation.xcodeproj/project.pbxproj | 20 ++- .../contents.xcworkspacedata | 0 .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../UserInterfaceState.xcuserstate | Bin 0 -> 27772 bytes .../xcschemes/xcschememanagement.plist | 14 ++ .../xcschemes/xcschememanagement.plist | 0 UIAnimation/AppDelegate.swift | 0 .../AppIcon.appiconset/Contents.json | 0 .../AppIcon.appiconset/icon-AppStore.png | Bin .../AppIcon.appiconset/icon-iPad20.png | Bin .../AppIcon.appiconset/icon-iPad20@2x.png | Bin .../AppIcon.appiconset/icon-iPad29.png | Bin .../AppIcon.appiconset/icon-iPad29@2x.png | Bin .../AppIcon.appiconset/icon-iPad40.png | Bin .../AppIcon.appiconset/icon-iPad40@2x.png | Bin .../AppIcon.appiconset/icon-iPad76.png | Bin .../AppIcon.appiconset/icon-iPad76@2x.png | Bin .../AppIcon.appiconset/icon-iPad83@2x.png | Bin .../AppIcon.appiconset/icon-iPhone20@2x.png | Bin .../AppIcon.appiconset/icon-iPhone20@3x.png | Bin .../AppIcon.appiconset/icon-iPhone29@2x.png | Bin .../AppIcon.appiconset/icon-iPhone29@3x.png | Bin .../AppIcon.appiconset/icon-iPhone40@2x.png | Bin .../AppIcon.appiconset/icon-iPhone40@3x.png | Bin .../AppIcon.appiconset/icon-iPhone60@2x.png | Bin .../AppIcon.appiconset/icon-iPhone60@3x.png | Bin UIAnimation/Assets.xcassets/Contents.json | 0 .../icon1.imageset/Contents.json | 0 .../Assets.xcassets/icon1.imageset/icon1.png | Bin .../icon1.imageset/icon1@2x.png | Bin .../icon1.imageset/icon1@3x.png | Bin .../icon2.imageset/Contents.json | 0 .../icon2.imageset/icon2@1x.png | Bin .../icon2.imageset/icon2@2x.png | Bin .../icon2.imageset/icon2@3x.png | Bin .../icon3.imageset/Contents.json | 0 .../Assets.xcassets/icon3.imageset/icon3.png | Bin .../icon3.imageset/icon3@2x.png | Bin .../icon3.imageset/icon3@3x.png | Bin .../icon4.imageset/Contents.json | 0 .../icon4.imageset/icon4@1x.png | Bin .../icon4.imageset/icon4@2x.png | Bin .../icon4.imageset/icon4@3x.png | Bin .../rocket.imageset/Contents.json | 0 .../rocket.imageset/rocket.png | Bin .../rocket2.imageset/Contents.json | 0 .../rocket2.imageset/rocket2.png | Bin .../world1.imageset/Contents.json | 0 .../world1.imageset/world1.png | Bin .../Base.lproj/LaunchScreen.storyboard | 0 UIAnimation/Base.lproj/Main.storyboard | 146 ++++++++++++++++-- UIAnimation/BronzeViewController.swift | 91 +++++++++++ UIAnimation/GoldViewController.swift | 30 ++++ UIAnimation/Info.plist | 0 UIAnimation/Silver2ViewController.swift | 21 +++ UIAnimation/SilverViewController.swift | 73 +++++++++ UIAnimation/ViewController.swift | 33 +++- 58 files changed, 416 insertions(+), 12 deletions(-) create mode 100644 .DS_Store mode change 100644 => 100755 UIAnimation.xcodeproj/project.pbxproj mode change 100644 => 100755 UIAnimation.xcodeproj/project.xcworkspace/contents.xcworkspacedata mode change 100644 => 100755 UIAnimation.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 UIAnimation.xcodeproj/project.xcworkspace/xcuserdata/leonardooliveira.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 UIAnimation.xcodeproj/xcuserdata/leonardooliveira.xcuserdatad/xcschemes/xcschememanagement.plist mode change 100644 => 100755 UIAnimation.xcodeproj/xcuserdata/phcacique.xcuserdatad/xcschemes/xcschememanagement.plist mode change 100644 => 100755 UIAnimation/AppDelegate.swift mode change 100644 => 100755 UIAnimation/Assets.xcassets/AppIcon.appiconset/Contents.json mode change 100644 => 100755 UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-AppStore.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad20.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad20@2x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad29.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad29@2x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad40.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad40@2x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad76.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad76@2x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad83@2x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone20@2x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone20@3x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone29@2x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone29@3x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone40@2x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone40@3x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone60@2x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone60@3x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/Contents.json mode change 100644 => 100755 UIAnimation/Assets.xcassets/icon1.imageset/Contents.json mode change 100644 => 100755 UIAnimation/Assets.xcassets/icon1.imageset/icon1.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/icon1.imageset/icon1@2x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/icon1.imageset/icon1@3x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/icon2.imageset/Contents.json mode change 100644 => 100755 UIAnimation/Assets.xcassets/icon2.imageset/icon2@1x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/icon2.imageset/icon2@2x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/icon2.imageset/icon2@3x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/icon3.imageset/Contents.json mode change 100644 => 100755 UIAnimation/Assets.xcassets/icon3.imageset/icon3.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/icon3.imageset/icon3@2x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/icon3.imageset/icon3@3x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/icon4.imageset/Contents.json mode change 100644 => 100755 UIAnimation/Assets.xcassets/icon4.imageset/icon4@1x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/icon4.imageset/icon4@2x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/icon4.imageset/icon4@3x.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/rocket.imageset/Contents.json mode change 100644 => 100755 UIAnimation/Assets.xcassets/rocket.imageset/rocket.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/rocket2.imageset/Contents.json mode change 100644 => 100755 UIAnimation/Assets.xcassets/rocket2.imageset/rocket2.png mode change 100644 => 100755 UIAnimation/Assets.xcassets/world1.imageset/Contents.json mode change 100644 => 100755 UIAnimation/Assets.xcassets/world1.imageset/world1.png mode change 100644 => 100755 UIAnimation/Base.lproj/LaunchScreen.storyboard mode change 100644 => 100755 UIAnimation/Base.lproj/Main.storyboard create mode 100644 UIAnimation/BronzeViewController.swift create mode 100644 UIAnimation/GoldViewController.swift mode change 100644 => 100755 UIAnimation/Info.plist create mode 100644 UIAnimation/Silver2ViewController.swift create mode 100644 UIAnimation/SilverViewController.swift mode change 100644 => 100755 UIAnimation/ViewController.swift diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f3000f3c50d718cf6176def487f9906d7b96861a GIT binary patch literal 6148 zcmeHK$w~u35PhXN1ia)Tc(=1X0NL$Faa=TQxsJOM9qV)qXHc*Bw>S>YZXo~b=;9;S=sZrk}$?%Ka)caJ}_-}jM^+*2};3?u`|z~M8%H(Of`%mq literal 0 HcmV?d00001 diff --git a/UIAnimation.xcodeproj/project.pbxproj b/UIAnimation.xcodeproj/project.pbxproj old mode 100644 new mode 100755 index aebf720..a4e2324 --- a/UIAnimation.xcodeproj/project.pbxproj +++ b/UIAnimation.xcodeproj/project.pbxproj @@ -7,6 +7,10 @@ objects = { /* Begin PBXBuildFile section */ + 7624CE4E229C5E8E007F74B4 /* BronzeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7624CE4D229C5E8E007F74B4 /* BronzeViewController.swift */; }; + 7624CE50229C5E97007F74B4 /* SilverViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7624CE4F229C5E97007F74B4 /* SilverViewController.swift */; }; + 7624CE52229C5E9F007F74B4 /* GoldViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7624CE51229C5E9F007F74B4 /* GoldViewController.swift */; }; + 7624CE54229C85AE007F74B4 /* Silver2ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7624CE53229C85AE007F74B4 /* Silver2ViewController.swift */; }; 778CE9D2229BF77300F5483E /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 778CE9D1229BF77300F5483E /* AppDelegate.swift */; }; 778CE9D4229BF77300F5483E /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 778CE9D3229BF77300F5483E /* ViewController.swift */; }; 778CE9D7229BF77300F5483E /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 778CE9D5229BF77300F5483E /* Main.storyboard */; }; @@ -15,6 +19,10 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 7624CE4D229C5E8E007F74B4 /* BronzeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BronzeViewController.swift; sourceTree = ""; }; + 7624CE4F229C5E97007F74B4 /* SilverViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SilverViewController.swift; sourceTree = ""; }; + 7624CE51229C5E9F007F74B4 /* GoldViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GoldViewController.swift; sourceTree = ""; }; + 7624CE53229C85AE007F74B4 /* Silver2ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Silver2ViewController.swift; sourceTree = ""; }; 778CE9CE229BF77300F5483E /* UIAnimation.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = UIAnimation.app; sourceTree = BUILT_PRODUCTS_DIR; }; 778CE9D1229BF77300F5483E /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 778CE9D3229BF77300F5483E /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; @@ -56,6 +64,10 @@ children = ( 778CE9D1229BF77300F5483E /* AppDelegate.swift */, 778CE9D3229BF77300F5483E /* ViewController.swift */, + 7624CE4D229C5E8E007F74B4 /* BronzeViewController.swift */, + 7624CE4F229C5E97007F74B4 /* SilverViewController.swift */, + 7624CE53229C85AE007F74B4 /* Silver2ViewController.swift */, + 7624CE51229C5E9F007F74B4 /* GoldViewController.swift */, 778CE9D5229BF77300F5483E /* Main.storyboard */, 778CE9D8229BF77600F5483E /* Assets.xcassets */, 778CE9DA229BF77600F5483E /* LaunchScreen.storyboard */, @@ -135,6 +147,10 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 7624CE54229C85AE007F74B4 /* Silver2ViewController.swift in Sources */, + 7624CE52229C5E9F007F74B4 /* GoldViewController.swift in Sources */, + 7624CE4E229C5E8E007F74B4 /* BronzeViewController.swift in Sources */, + 7624CE50229C5E97007F74B4 /* SilverViewController.swift in Sources */, 778CE9D4229BF77300F5483E /* ViewController.swift in Sources */, 778CE9D2229BF77300F5483E /* AppDelegate.swift in Sources */, ); @@ -283,7 +299,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = PV6ZXMXKDK; + DEVELOPMENT_TEAM = 4BUKN8ST5B; INFOPLIST_FILE = "$(SRCROOT)/UIAnimation/Info.plist"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -301,7 +317,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = PV6ZXMXKDK; + DEVELOPMENT_TEAM = 4BUKN8ST5B; INFOPLIST_FILE = "$(SRCROOT)/UIAnimation/Info.plist"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", diff --git a/UIAnimation.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/UIAnimation.xcodeproj/project.xcworkspace/contents.xcworkspacedata old mode 100644 new mode 100755 diff --git a/UIAnimation.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/UIAnimation.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist old mode 100644 new mode 100755 diff --git a/UIAnimation.xcodeproj/project.xcworkspace/xcuserdata/leonardooliveira.xcuserdatad/UserInterfaceState.xcuserstate b/UIAnimation.xcodeproj/project.xcworkspace/xcuserdata/leonardooliveira.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..6ee12d50293af1b83098dd6636b83c82ef4bc3ab GIT binary patch literal 27772 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 DSor>n literal 0 HcmV?d00001 diff --git a/UIAnimation.xcodeproj/xcuserdata/leonardooliveira.xcuserdatad/xcschemes/xcschememanagement.plist b/UIAnimation.xcodeproj/xcuserdata/leonardooliveira.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..d7d0658 --- /dev/null +++ b/UIAnimation.xcodeproj/xcuserdata/leonardooliveira.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + UIAnimation.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/UIAnimation.xcodeproj/xcuserdata/phcacique.xcuserdatad/xcschemes/xcschememanagement.plist b/UIAnimation.xcodeproj/xcuserdata/phcacique.xcuserdatad/xcschemes/xcschememanagement.plist old mode 100644 new mode 100755 diff --git a/UIAnimation/AppDelegate.swift b/UIAnimation/AppDelegate.swift old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/AppIcon.appiconset/Contents.json b/UIAnimation/Assets.xcassets/AppIcon.appiconset/Contents.json old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-AppStore.png b/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-AppStore.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad20.png b/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad20.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad20@2x.png b/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad20@2x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad29.png b/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad29.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad29@2x.png b/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad29@2x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad40.png b/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad40.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad40@2x.png b/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad40@2x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad76.png b/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad76.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad76@2x.png b/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad76@2x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad83@2x.png b/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPad83@2x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone20@2x.png b/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone20@2x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone20@3x.png b/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone20@3x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone29@2x.png b/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone29@2x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone29@3x.png b/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone29@3x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone40@2x.png b/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone40@2x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone40@3x.png b/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone40@3x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone60@2x.png b/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone60@2x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone60@3x.png b/UIAnimation/Assets.xcassets/AppIcon.appiconset/icon-iPhone60@3x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/Contents.json b/UIAnimation/Assets.xcassets/Contents.json old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/icon1.imageset/Contents.json b/UIAnimation/Assets.xcassets/icon1.imageset/Contents.json old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/icon1.imageset/icon1.png b/UIAnimation/Assets.xcassets/icon1.imageset/icon1.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/icon1.imageset/icon1@2x.png b/UIAnimation/Assets.xcassets/icon1.imageset/icon1@2x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/icon1.imageset/icon1@3x.png b/UIAnimation/Assets.xcassets/icon1.imageset/icon1@3x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/icon2.imageset/Contents.json b/UIAnimation/Assets.xcassets/icon2.imageset/Contents.json old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/icon2.imageset/icon2@1x.png b/UIAnimation/Assets.xcassets/icon2.imageset/icon2@1x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/icon2.imageset/icon2@2x.png b/UIAnimation/Assets.xcassets/icon2.imageset/icon2@2x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/icon2.imageset/icon2@3x.png b/UIAnimation/Assets.xcassets/icon2.imageset/icon2@3x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/icon3.imageset/Contents.json b/UIAnimation/Assets.xcassets/icon3.imageset/Contents.json old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/icon3.imageset/icon3.png b/UIAnimation/Assets.xcassets/icon3.imageset/icon3.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/icon3.imageset/icon3@2x.png b/UIAnimation/Assets.xcassets/icon3.imageset/icon3@2x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/icon3.imageset/icon3@3x.png b/UIAnimation/Assets.xcassets/icon3.imageset/icon3@3x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/icon4.imageset/Contents.json b/UIAnimation/Assets.xcassets/icon4.imageset/Contents.json old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/icon4.imageset/icon4@1x.png b/UIAnimation/Assets.xcassets/icon4.imageset/icon4@1x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/icon4.imageset/icon4@2x.png b/UIAnimation/Assets.xcassets/icon4.imageset/icon4@2x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/icon4.imageset/icon4@3x.png b/UIAnimation/Assets.xcassets/icon4.imageset/icon4@3x.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/rocket.imageset/Contents.json b/UIAnimation/Assets.xcassets/rocket.imageset/Contents.json old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/rocket.imageset/rocket.png b/UIAnimation/Assets.xcassets/rocket.imageset/rocket.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/rocket2.imageset/Contents.json b/UIAnimation/Assets.xcassets/rocket2.imageset/Contents.json old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/rocket2.imageset/rocket2.png b/UIAnimation/Assets.xcassets/rocket2.imageset/rocket2.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/world1.imageset/Contents.json b/UIAnimation/Assets.xcassets/world1.imageset/Contents.json old mode 100644 new mode 100755 diff --git a/UIAnimation/Assets.xcassets/world1.imageset/world1.png b/UIAnimation/Assets.xcassets/world1.imageset/world1.png old mode 100644 new mode 100755 diff --git a/UIAnimation/Base.lproj/LaunchScreen.storyboard b/UIAnimation/Base.lproj/LaunchScreen.storyboard old mode 100644 new mode 100755 diff --git a/UIAnimation/Base.lproj/Main.storyboard b/UIAnimation/Base.lproj/Main.storyboard old mode 100644 new mode 100755 index c20059c..6c6dae1 --- a/UIAnimation/Base.lproj/Main.storyboard +++ b/UIAnimation/Base.lproj/Main.storyboard @@ -13,39 +13,162 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -61,7 +184,7 @@ - + @@ -71,7 +194,7 @@ - + @@ -79,6 +202,10 @@ + + + + @@ -122,6 +249,7 @@ + diff --git a/UIAnimation/BronzeViewController.swift b/UIAnimation/BronzeViewController.swift new file mode 100644 index 0000000..323c1c9 --- /dev/null +++ b/UIAnimation/BronzeViewController.swift @@ -0,0 +1,91 @@ +// +// BronzeViewController.swift +// UIAnimation +// +// Created by Leonardo Oliveira on 27/05/19. +// Copyright © 2019 Pedro Cacique. All rights reserved. +// + +import UIKit + +class BronzeViewController: UIViewController { + + @IBOutlet weak var rocket: UIImageView! + @IBOutlet weak var world: UIImageView! + @IBOutlet weak var backgroundSegmentedControl: UISegmentedControl! + + override func viewDidLoad() { + super.viewDidLoad() + } + + @IBAction func backgroundSegmentedControlChange(_ sender: UISegmentedControl) { + + if backgroundSegmentedControl.selectedSegmentIndex == 0{ + self.view.backgroundColor = #colorLiteral(red: 0.262745098, green: 0.3594709039, blue: 0.4427573681, alpha: 1) + + } else if backgroundSegmentedControl.selectedSegmentIndex == 1{ + self.view.backgroundColor = UIColor.black + + } + } + + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + // bounds - conteúdo dentro do frame + // frame - escala e posicionamento + // center - movimentação na tela + + self.rocket.center.x = self.view.center.x + self.rocket.center.y = self.view.frame.height + self.rocket.frame.size.height = self.view.frame.size.height * 0.30 + + self.world.frame.size.width = self.view.frame.size.width + self.world.center.x = self.view.center.x + self.world.center.y = self.view.frame.height + } + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + + let myPath = UIBezierPath() + let myShapeLayer = CAShapeLayer() + + UIView.animate(withDuration: 4.0, delay: 0, options: [.curveLinear], animations: { + + self.rocket.center.y = -(self.rocket.frame.size.height/2) + self.rocket.layer.zPosition = 100 + + }, completion: { finished in + // self.rocket.image = #imageLiteral(resourceName: "rocket2") + }) + + myPath.move(to: CGPoint(x: self.rocket.center.x, y: (self.view.frame.height + self.rocket.frame.size.height))) + myPath.addLine(to: CGPoint(x: self.rocket.center.x, y: -(self.rocket.frame.size.height))) + + myShapeLayer.strokeColor = #colorLiteral(red: 0.2549020872, green: 0.2507159207, blue: 0.2587435233, alpha: 0.8967044454) + myShapeLayer.lineWidth = 10 + + myShapeLayer.path = myPath.cgPath + myShapeLayer.strokeStart = 0.8 + + let myEndAnimation = CABasicAnimation(keyPath: "strokeEnd") + myEndAnimation.fromValue = 0.2 + myEndAnimation.toValue = 1.0 + + let myStartAnimation = CABasicAnimation(keyPath: "strokeStart") + myStartAnimation.fromValue = 0.0 + myStartAnimation.toValue = 0.8 + + let animationGroup = CAAnimationGroup() + animationGroup.animations = [myStartAnimation, myEndAnimation] + animationGroup.duration = 4.2 + + myShapeLayer.add(animationGroup, forKey: "drawLine") + self.view.layer.addSublayer(myShapeLayer) + + } + + +} diff --git a/UIAnimation/GoldViewController.swift b/UIAnimation/GoldViewController.swift new file mode 100644 index 0000000..3df297e --- /dev/null +++ b/UIAnimation/GoldViewController.swift @@ -0,0 +1,30 @@ +// +// GoldViewController.swift +// UIAnimation +// +// Created by Leonardo Oliveira on 27/05/19. +// Copyright © 2019 Pedro Cacique. All rights reserved. +// + +import UIKit + +class GoldViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destination. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/UIAnimation/Info.plist b/UIAnimation/Info.plist old mode 100644 new mode 100755 diff --git a/UIAnimation/Silver2ViewController.swift b/UIAnimation/Silver2ViewController.swift new file mode 100644 index 0000000..f52b5e1 --- /dev/null +++ b/UIAnimation/Silver2ViewController.swift @@ -0,0 +1,21 @@ +// +// Silver2ViewController.swift +// UIAnimation +// +// Created by Leonardo Oliveira on 27/05/19. +// Copyright © 2019 Pedro Cacique. All rights reserved. +// + +import UIKit + +class Silver2ViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + } + + @IBAction func dismissBtnPressed(_ sender: Any) { + dismiss(animated: true, completion: nil) + } + +} diff --git a/UIAnimation/SilverViewController.swift b/UIAnimation/SilverViewController.swift new file mode 100644 index 0000000..55509bd --- /dev/null +++ b/UIAnimation/SilverViewController.swift @@ -0,0 +1,73 @@ +// +// SilverViewController.swift +// UIAnimation +// +// Created by Leonardo Oliveira on 27/05/19. +// Copyright © 2019 Pedro Cacique. All rights reserved. +// + +import UIKit + +class SilverViewController: UIViewController { + + @IBOutlet weak var rocket: UIImageView! + @IBOutlet weak var world: UIImageView! + @IBOutlet weak var loginTextField: UITextField! + @IBOutlet weak var passwordTextField: UITextField! + @IBOutlet weak var signinBtn: UIButton! + + override var preferredStatusBarStyle: UIStatusBarStyle { + return .lightContent + } + + override func viewDidLoad() { + super.viewDidLoad() + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + // bounds - conteúdo dentro do frame + // frame - escala e posicionamento + // center - movimentação na tela + + self.rocket.center.x = self.view.center.x + self.rocket.center.y = self.view.frame.size.height - self.world.frame.height / 2 + self.rocket.frame.size.height = self.view.frame.size.height * 0.30 + + self.world.frame.size.width = self.view.frame.size.width + self.world.center.x = self.view.center.x + self.world.center.y = self.view.frame.height + + self.loginTextField.center.x = self.loginTextField.frame.width / 2 + self.passwordTextField.center.x = self.passwordTextField.frame.width / 2 + self.signinBtn.center.x = self.signinBtn.frame.width / 2 + } + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + + UIView.animate(withDuration: 3.0, delay: 0, options: [.curveEaseOut], animations: { + self.loginTextField.center.x = self.view.center.x + self.passwordTextField.center.x = self.view.center.x + self.signinBtn.center.x = self.view.center.x + + }, completion: { finished in + // self.rocket.image = #imageLiteral(resourceName: "rocket2") + }) + } + + @IBAction func signinBtnPressed(_ sender: UIButton) { + + UIView.animate(withDuration: 3.0, delay: 0, options: [.curveLinear], animations: { + self.rocket.image = #imageLiteral(resourceName: "rocket") + self.rocket.center.y = -(self.rocket.frame.size.height/2) + self.rocket.layer.zPosition = 100 + + }, completion: { finished in + self.performSegue(withIdentifier: "silverSegue", sender: self) + }) + + } + +} diff --git a/UIAnimation/ViewController.swift b/UIAnimation/ViewController.swift old mode 100644 new mode 100755 index 9804cbb..761c1e9 --- a/UIAnimation/ViewController.swift +++ b/UIAnimation/ViewController.swift @@ -9,10 +9,41 @@ import UIKit class ViewController: UIViewController { - + + @IBOutlet weak var rocket: UIImageView! + @IBOutlet weak var world: UIImageView! + + override var preferredStatusBarStyle: UIStatusBarStyle { + return .lightContent + } + override func viewDidLoad() { super.viewDidLoad() + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + // bounds - conteúdo dentro do frame + // frame - escala e posicionamento + // center - movimentação na tela + + self.rocket.center.x = self.view.center.x + self.rocket.frame.size.height = self.view.frame.size.height * 0.30 + + self.world.frame.size.width = self.view.frame.size.width + self.world.center.x = self.view.center.x + self.world.center.y = self.view.frame.height + } + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + UIView.animate(withDuration: 5.0, delay: 0, options: [.curveEaseOut], animations: { + self.rocket.center.y = self.world.center.y - self.world.frame.height / 2 + }, completion: { finished in + self.rocket.image = #imageLiteral(resourceName: "rocket2") + }) }