From d55b9f09d7997082c5794ff3adfd8454bbe57e3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabr=C3=ADcio=20Guilhermo?= Date: Tue, 28 May 2019 15:53:14 -0300 Subject: [PATCH 1/2] Bronze --- .DS_Store | Bin 0 -> 6148 bytes UIAnimation.xcodeproj/project.pbxproj | 4 + .../contents.xcworkspacedata | 0 .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../UserInterfaceState.xcuserstate | Bin 0 -> 30456 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 | 42 ++++++- UIAnimation/Info.plist | 0 UIAnimation/ViewController.swift | 71 +++++++++-- UIAnimation/ViewControllerBronze.swift | 111 ++++++++++++++++++ 55 files changed, 223 insertions(+), 19 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/fabricioguilhermo.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 UIAnimation.xcodeproj/xcuserdata/fabricioguilhermo.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 mode change 100644 => 100755 UIAnimation/Info.plist mode change 100644 => 100755 UIAnimation/ViewController.swift create mode 100644 UIAnimation/ViewControllerBronze.swift diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..53a5d8c5690f6ff2be6fe9fc6b9fac5093a556a3 GIT binary patch literal 6148 zcmeHKJxc>Y5PhqM1d}37z|I4$h15d0#Ivxm3HC9GL?xFC62bBce~+b&h4@4K5B>z- z>~3+(B}x=T!VK)bz4_RkdB^SE0x-S%aT{m?sIdt~yX=;T*riou%WE1$BXdkA?fxjw z<`qv>Cj78mTg&{ro(AIq>h_Gk-ne5bwm63OZ)t~v^O+9 z7>YVBaE2~sTsy-h7Q`I0Ad9GTvf4Au2`{fMrxo*Nc{#)Hyn}pqBwe(Y=S%h;FkLr_0=ca@D}z`xa6ed8+Af|LPe;I|CO z{t&YXCLRlicI#kguK>h|YAYPeT|#1FkBP^^AuSZ+LWwTa_$!8S;nc_8FY#D7bm1`m z@?reS#@|qkU7hpC)*U8ssJ$|v41^49yT_)S|EH_(|6!0mDFe#DMloQbw4e4^l0RE3 w#mQM4vkllp#IJB@L)iJ_*bd|<-ea>uTPy=&;<0c@4Ml$hEDhQz1AofEC+Z`8*8l(j literal 0 HcmV?d00001 diff --git a/UIAnimation.xcodeproj/project.pbxproj b/UIAnimation.xcodeproj/project.pbxproj old mode 100644 new mode 100755 index aebf720..ec65870 --- a/UIAnimation.xcodeproj/project.pbxproj +++ b/UIAnimation.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 0C5C9D97229C762900729968 /* ViewControllerBronze.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C5C9D96229C762900729968 /* ViewControllerBronze.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 +16,7 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 0C5C9D96229C762900729968 /* ViewControllerBronze.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewControllerBronze.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 +58,7 @@ children = ( 778CE9D1229BF77300F5483E /* AppDelegate.swift */, 778CE9D3229BF77300F5483E /* ViewController.swift */, + 0C5C9D96229C762900729968 /* ViewControllerBronze.swift */, 778CE9D5229BF77300F5483E /* Main.storyboard */, 778CE9D8229BF77600F5483E /* Assets.xcassets */, 778CE9DA229BF77600F5483E /* LaunchScreen.storyboard */, @@ -136,6 +139,7 @@ buildActionMask = 2147483647; files = ( 778CE9D4229BF77300F5483E /* ViewController.swift in Sources */, + 0C5C9D97229C762900729968 /* ViewControllerBronze.swift in Sources */, 778CE9D2229BF77300F5483E /* AppDelegate.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; 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/fabricioguilhermo.xcuserdatad/UserInterfaceState.xcuserstate b/UIAnimation.xcodeproj/project.xcworkspace/xcuserdata/fabricioguilhermo.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..42e041e53e52ccd6d46aab399a76d8cc849f9f8b GIT binary patch literal 30456 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 literal 0 HcmV?d00001 diff --git a/UIAnimation.xcodeproj/xcuserdata/fabricioguilhermo.xcuserdatad/xcschemes/xcschememanagement.plist b/UIAnimation.xcodeproj/xcuserdata/fabricioguilhermo.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..d7d0658 --- /dev/null +++ b/UIAnimation.xcodeproj/xcuserdata/fabricioguilhermo.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..01797fd --- a/UIAnimation/Base.lproj/Main.storyboard +++ b/UIAnimation/Base.lproj/Main.storyboard @@ -13,18 +13,44 @@ - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + @@ -61,7 +87,7 @@ - + @@ -79,6 +105,10 @@ + + + + @@ -93,7 +123,7 @@ - + diff --git a/UIAnimation/Info.plist b/UIAnimation/Info.plist old mode 100644 new mode 100755 diff --git a/UIAnimation/ViewController.swift b/UIAnimation/ViewController.swift old mode 100644 new mode 100755 index 9804cbb..f840ba0 --- a/UIAnimation/ViewController.swift +++ b/UIAnimation/ViewController.swift @@ -1,20 +1,65 @@ -// -// ViewController.swift -// UIAnimation_base -// -// Created by Pedro Cacique on 27/05/19. -// Copyright © 2019 Pedro Cacique. All rights reserved. -// +// Animação import UIKit -class ViewController: UIViewController { - - override func viewDidLoad() { +class ViewController: UIViewController +{ + // linkando o foguete e o mundo + @IBOutlet weak var rocket: UIImageView! + @IBOutlet weak var world: UIImageView! + + override func viewDidLoad() + { + print("viewDidLoad") super.viewDidLoad() + } + + + override func viewDidAppear(_ animated: Bool) + { + print("viewDidAppear") + UIView.animate(withDuration: 3.0, delay: 0, options: [.curveEaseInOut], animations: + { + self.rocket.center.y = self.view.frame.height - self.world.frame.height/2 + + self.rocket.transform = self.rocket.transform.rotated(by: .pi/2) +// self.rocket.transform = self.rocket.transform.scaledBy(x: 2, y: 2) + }, completion: // ação executada após o término da animação + { + finished in +// self.rocket.image = UIImage(named: "rocket2.png") + self.outraAnimacao() + }) + } + + func outraAnimacao() + { + UIView.animate(withDuration: 3.0, animations: + { + self.rocket.center.x = self.view.frame.width + self.rocket.frame.width/2 + }) + } + + + override func viewWillAppear(_ animated: Bool) + { + print("viewWillAppear") + // chamada para arrumar o conteúdo antes de aparecer na tela + // .frame = tamanho + + // largura do planeta = largura da view + self.world.frame.size.width = self.view.frame.width + + // posiciona o planeta na parte de baixo + self.world.center.y = self.view.frame.height + // altura do foguete = 15% da altura da view + self.rocket.frame.size.height = self.view.frame.height * 0.15 + + // centralizar no eixo x + self.rocket.center.x = self.view.center.x + + // posiciona o foguete na parte de cima da view + self.rocket.center.y = self.rocket.frame.height/2 } - - } - diff --git a/UIAnimation/ViewControllerBronze.swift b/UIAnimation/ViewControllerBronze.swift new file mode 100644 index 0000000..25ce6a2 --- /dev/null +++ b/UIAnimation/ViewControllerBronze.swift @@ -0,0 +1,111 @@ +// +// ViewControllerBronze.swift +// UIAnimation +// +// Created by Fabrício Guilhermo on 27/05/19. +// Copyright © 2019 Pedro Cacique. All rights reserved. +// +import UIKit + +class ViewControllerBronze: UIViewController +{ + + // segmented control, para trocar background + @IBOutlet weak var segmentedControl: UISegmentedControl! + @IBAction func indexChanged(_ sender: Any) + { + switch segmentedControl.selectedSegmentIndex + { + case 0: + self.view.backgroundColor = #colorLiteral(red: 0.2625385225, green: 0.3625041246, blue: 0.4428519905, alpha: 1) + case 1: + self.view.backgroundColor = #colorLiteral(red: 0.09890385717, green: 0.1375659108, blue: 0.1691181362, alpha: 1) + default: + break + } + } + + + + @IBOutlet weak var rocket: UIImageView! + @IBOutlet weak var world: UIImageView! + + override func viewDidLoad() + { + print("viewDidLoad") + super.viewDidLoad() + } + + + override func viewDidAppear(_ animated: Bool) + { + print("viewDidAppear") + UIView.animate(withDuration: 3, delay: 0, options: [.curveEaseInOut], animations: + { + self.rocket.center.y = -self.view.frame.height + self.view.frame.height - self.rocket.frame.height/2 + }) + } + + + override func viewWillAppear(_ animated: Bool) + { + print("viewWillAppear") + + // chamada para arrumar o conteúdo antes de aparecer na tela + // .frame = tamanho + + // largura do planeta = largura da view + self.world.frame.size.width = self.view.frame.width + + // posiciona o planeta na parte de baixo + self.world.center.y = self.view.frame.height + + // altura do foguete = 15% da altura da view + self.rocket.frame.size.height = self.view.frame.height * 0.35 + + // centralizar no eixo x + self.rocket.center.x = self.view.center.x + + // posiciona o foguete na parte de baixo da view + self.rocket.center.y = self.view.frame.height - self.world.frame.height/2 + + self.view.sendSubviewToBack(rocket) + self.view.sendSubviewToBack(world) + + let myPath = UIBezierPath() + myPath.move(to: CGPoint(x: self.view.center.x, y: self.view.frame.height + self.rocket.frame.height/2)) + myPath.addLine(to: CGPoint(x: self.view.center.x, y: -self.view.frame.height + self.view.frame.height - self.rocket.frame.height)) + + let myShapeLayer = CAShapeLayer() + myShapeLayer.strokeColor = #colorLiteral(red: 0.9439728856, green: 0.6075943708, blue: 0.1707503796, alpha: 1) + myShapeLayer.lineWidth = 6 + + myShapeLayer.path = myPath.cgPath + view.layer.addSublayer(myShapeLayer) + myShapeLayer.zPosition = -1 + myShapeLayer.strokeStart = 0.8 + + let myAnimation = CABasicAnimation(keyPath: "strokeEnd") + myAnimation.fromValue = 0 + myAnimation.toValue = 1 + myAnimation.duration = 1 + + myShapeLayer.add(myAnimation, forKey: "drawLine") + + //Criamos a animação que desenha + let myEndAnimation = CABasicAnimation(keyPath: "strokeEnd") + myEndAnimation.fromValue = 0.2 + myEndAnimation.toValue = 1.0 + + //E em seguida, a que apaga + let myStartAnimation = CABasicAnimation(keyPath: "strokeStart") + myStartAnimation.fromValue = 0.0 + myStartAnimation.toValue = 0.8 + let animationGroup = CAAnimationGroup() + animationGroup.animations = [myStartAnimation, myEndAnimation] + animationGroup.duration = 3 + + myShapeLayer.add(animationGroup, forKey: "drawLine") + view.layer.addSublayer(myShapeLayer) + } +} From 3112b9c065651950dd7a05739d84d4fe1779748a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabr=C3=ADcio?= Date: Wed, 29 May 2019 13:26:35 -0300 Subject: [PATCH 2/2] =?UTF-8?q?Anima=C3=A7=C3=A3o=20Bronze=20e=20Ouro=20im?= =?UTF-8?q?plementadas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- UIAnimation.xcodeproj/project.pbxproj | 4 ++ .../UserInterfaceState.xcuserstate | Bin 30456 -> 33998 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 23 +++++++++++ UIAnimation/Base.lproj/Main.storyboard | 37 ++++++++++++++++-- UIAnimation/ViewControllerOuro.swift | 29 ++++++++++++++ 5 files changed, 89 insertions(+), 4 deletions(-) create mode 100644 UIAnimation.xcodeproj/xcuserdata/fabricioguilhermo.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 UIAnimation/ViewControllerOuro.swift diff --git a/UIAnimation.xcodeproj/project.pbxproj b/UIAnimation.xcodeproj/project.pbxproj index ec65870..1492cdc 100755 --- a/UIAnimation.xcodeproj/project.pbxproj +++ b/UIAnimation.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ 0C5C9D97229C762900729968 /* ViewControllerBronze.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C5C9D96229C762900729968 /* ViewControllerBronze.swift */; }; + 0C9E14FB229ECD640000F613 /* ViewControllerOuro.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C9E14FA229ECD640000F613 /* ViewControllerOuro.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 */; }; @@ -17,6 +18,7 @@ /* Begin PBXFileReference section */ 0C5C9D96229C762900729968 /* ViewControllerBronze.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewControllerBronze.swift; sourceTree = ""; }; + 0C9E14FA229ECD640000F613 /* ViewControllerOuro.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewControllerOuro.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 = ""; }; @@ -60,6 +62,7 @@ 778CE9D3229BF77300F5483E /* ViewController.swift */, 0C5C9D96229C762900729968 /* ViewControllerBronze.swift */, 778CE9D5229BF77300F5483E /* Main.storyboard */, + 0C9E14FA229ECD640000F613 /* ViewControllerOuro.swift */, 778CE9D8229BF77600F5483E /* Assets.xcassets */, 778CE9DA229BF77600F5483E /* LaunchScreen.storyboard */, 778CE9DD229BF77600F5483E /* Info.plist */, @@ -141,6 +144,7 @@ 778CE9D4229BF77300F5483E /* ViewController.swift in Sources */, 0C5C9D97229C762900729968 /* ViewControllerBronze.swift in Sources */, 778CE9D2229BF77300F5483E /* AppDelegate.swift in Sources */, + 0C9E14FB229ECD640000F613 /* ViewControllerOuro.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/UIAnimation.xcodeproj/project.xcworkspace/xcuserdata/fabricioguilhermo.xcuserdatad/UserInterfaceState.xcuserstate b/UIAnimation.xcodeproj/project.xcworkspace/xcuserdata/fabricioguilhermo.xcuserdatad/UserInterfaceState.xcuserstate index 42e041e53e52ccd6d46aab399a76d8cc849f9f8b..67a62e795bd0b13c2a9e75b40ba52a70b09bb4ae 100644 GIT binary patch delta 15638 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 diff --git a/UIAnimation.xcodeproj/xcuserdata/fabricioguilhermo.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/UIAnimation.xcodeproj/xcuserdata/fabricioguilhermo.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..382bfd7 --- /dev/null +++ b/UIAnimation.xcodeproj/xcuserdata/fabricioguilhermo.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,23 @@ + + + + + + + + + diff --git a/UIAnimation/Base.lproj/Main.storyboard b/UIAnimation/Base.lproj/Main.storyboard index 01797fd..f37563d 100755 --- a/UIAnimation/Base.lproj/Main.storyboard +++ b/UIAnimation/Base.lproj/Main.storyboard @@ -13,7 +13,6 @@ - @@ -49,6 +48,7 @@ + @@ -71,18 +71,47 @@ - + - + + + + + + + + + + + + + + + + + - + diff --git a/UIAnimation/ViewControllerOuro.swift b/UIAnimation/ViewControllerOuro.swift new file mode 100644 index 0000000..5fa2a9c --- /dev/null +++ b/UIAnimation/ViewControllerOuro.swift @@ -0,0 +1,29 @@ +// +// ViewControllerOuro.swift +// UIAnimation +// +// Created by Fabrício Guilhermo on 29/05/19. +// Copyright © 2019 Pedro Cacique. All rights reserved. +// + +import UIKit + +class ViewControllerOuro: UIViewController { + + @IBOutlet weak var card: UIView! + @IBOutlet weak var titulo: UILabel! + + @IBAction func openCard(_ sender: Any) + { + UIView.animate(withDuration: 1, delay: 0, options: [.curveEaseInOut], animations: + { + self.card.center.x = self.card.frame.width/2 + self.card.center.y = self.card.frame.height/2 + self.card.frame.size = self.view.frame.size + + self.titulo.center.x = self.view.center.x + self.titulo.center.y = self.titulo.frame.height*2.8 + }) + } + +}