From 66355477d720cd2ed42794340e60343937e69350 Mon Sep 17 00:00:00 2001 From: raxanob Date: Tue, 28 May 2019 17:36:38 -0300 Subject: [PATCH 1/2] Rayane Xavier --- UIAnimation.xcodeproj/project.pbxproj | 16 ++ .../UserInterfaceState.xcuserstate | Bin 0 -> 31312 bytes .../xcschemes/xcschememanagement.plist | 14 ++ UIAnimation/Base.lproj/Main.storyboard | 137 +++++++++++++++++- UIAnimation/BronzeViewController.swift | 97 +++++++++++++ UIAnimation/CircularViewController.swift | 64 ++++++++ UIAnimation/OuroViewController.swift | 21 +++ UIAnimation/PrataViewController.swift | 23 +++ UIAnimation/ViewController.swift | 43 ++++++ 9 files changed, 408 insertions(+), 7 deletions(-) create mode 100644 UIAnimation.xcodeproj/project.xcworkspace/xcuserdata/rayanexavier.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 UIAnimation.xcodeproj/xcuserdata/rayanexavier.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 UIAnimation/BronzeViewController.swift create mode 100644 UIAnimation/CircularViewController.swift create mode 100644 UIAnimation/OuroViewController.swift create mode 100644 UIAnimation/PrataViewController.swift diff --git a/UIAnimation.xcodeproj/project.pbxproj b/UIAnimation.xcodeproj/project.pbxproj index aebf720..e444af7 100644 --- a/UIAnimation.xcodeproj/project.pbxproj +++ b/UIAnimation.xcodeproj/project.pbxproj @@ -12,6 +12,10 @@ 778CE9D7229BF77300F5483E /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 778CE9D5229BF77300F5483E /* Main.storyboard */; }; 778CE9D9229BF77600F5483E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 778CE9D8229BF77600F5483E /* Assets.xcassets */; }; 778CE9DC229BF77600F5483E /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 778CE9DA229BF77600F5483E /* LaunchScreen.storyboard */; }; + E0A13E68229C59B8007A6007 /* BronzeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0A13E67229C59B8007A6007 /* BronzeViewController.swift */; }; + E0A13E6A229C59FD007A6007 /* PrataViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0A13E69229C59FD007A6007 /* PrataViewController.swift */; }; + E0A13E6C229C5A25007A6007 /* OuroViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0A13E6B229C5A25007A6007 /* OuroViewController.swift */; }; + E0A13E6E229C7E17007A6007 /* CircularViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0A13E6D229C7E17007A6007 /* CircularViewController.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -22,6 +26,10 @@ 778CE9D8229BF77600F5483E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 778CE9DB229BF77600F5483E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 778CE9DD229BF77600F5483E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E0A13E67229C59B8007A6007 /* BronzeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BronzeViewController.swift; sourceTree = ""; }; + E0A13E69229C59FD007A6007 /* PrataViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrataViewController.swift; sourceTree = ""; }; + E0A13E6B229C5A25007A6007 /* OuroViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OuroViewController.swift; sourceTree = ""; }; + E0A13E6D229C7E17007A6007 /* CircularViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CircularViewController.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -56,6 +64,10 @@ children = ( 778CE9D1229BF77300F5483E /* AppDelegate.swift */, 778CE9D3229BF77300F5483E /* ViewController.swift */, + E0A13E6D229C7E17007A6007 /* CircularViewController.swift */, + E0A13E67229C59B8007A6007 /* BronzeViewController.swift */, + E0A13E69229C59FD007A6007 /* PrataViewController.swift */, + E0A13E6B229C5A25007A6007 /* OuroViewController.swift */, 778CE9D5229BF77300F5483E /* Main.storyboard */, 778CE9D8229BF77600F5483E /* Assets.xcassets */, 778CE9DA229BF77600F5483E /* LaunchScreen.storyboard */, @@ -136,7 +148,11 @@ buildActionMask = 2147483647; files = ( 778CE9D4229BF77300F5483E /* ViewController.swift in Sources */, + E0A13E6C229C5A25007A6007 /* OuroViewController.swift in Sources */, 778CE9D2229BF77300F5483E /* AppDelegate.swift in Sources */, + E0A13E6E229C7E17007A6007 /* CircularViewController.swift in Sources */, + E0A13E6A229C59FD007A6007 /* PrataViewController.swift in Sources */, + E0A13E68229C59B8007A6007 /* BronzeViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/UIAnimation.xcodeproj/project.xcworkspace/xcuserdata/rayanexavier.xcuserdatad/UserInterfaceState.xcuserstate b/UIAnimation.xcodeproj/project.xcworkspace/xcuserdata/rayanexavier.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..13c03f0b6f3078c156203322ff34ea616d9a2c44 GIT binary patch literal 31312 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 Vj_f`~h9t$kKAg?h?`Pz={|C_-tIGfY literal 0 HcmV?d00001 diff --git a/UIAnimation.xcodeproj/xcuserdata/rayanexavier.xcuserdatad/xcschemes/xcschememanagement.plist b/UIAnimation.xcodeproj/xcuserdata/rayanexavier.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..d7d0658 --- /dev/null +++ b/UIAnimation.xcodeproj/xcuserdata/rayanexavier.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + UIAnimation.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/UIAnimation/Base.lproj/Main.storyboard b/UIAnimation/Base.lproj/Main.storyboard index c20059c..ff7ef3f 100644 --- a/UIAnimation/Base.lproj/Main.storyboard +++ b/UIAnimation/Base.lproj/Main.storyboard @@ -10,17 +10,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -29,26 +88,85 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + @@ -61,7 +179,7 @@ - + @@ -70,7 +188,7 @@ - + @@ -79,6 +197,10 @@ + + + + @@ -109,6 +231,7 @@ + diff --git a/UIAnimation/BronzeViewController.swift b/UIAnimation/BronzeViewController.swift new file mode 100644 index 0000000..608aa89 --- /dev/null +++ b/UIAnimation/BronzeViewController.swift @@ -0,0 +1,97 @@ +// +// Bronze.swift +// UIAnimation +// +// Created by Rayane Xavier on 27/05/19. +// Copyright © 2019 Pedro Cacique. All rights reserved. +// + +import Foundation +import UIKit + +class BronzeViewController: UIViewController { + @IBOutlet weak var Foguetinho: UIImageView! + + @IBOutlet weak var Lua: UIImageView! + + @IBAction func SegmentoAction(_ sender: Any) { + if segmentoOutlet.selectedSegmentIndex == 0 { + view.backgroundColor = #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0) + segmentoOutlet.tintColor = .black + + } + else{ + view.backgroundColor = #colorLiteral(red: 0.0206782259, green: 0, blue: 0.05182193965, alpha: 1) + segmentoOutlet.tintColor = .white + } + + } + + @IBOutlet weak var segmentoOutlet: UISegmentedControl! + + + override func viewDidLoad() { + + super.viewDidLoad() + + } + + override func viewDidAppear(_ animated: Bool) { + + let myFoguetinho = UIBezierPath() + myFoguetinho.move(to: CGPoint(x: self.Foguetinho.center.x, y: self.view.frame.height - self.Lua.frame.height/4)) + myFoguetinho.addLine(to: CGPoint(x: self.view.frame.width/2, y: self.Foguetinho.frame.height/1.25)) + + let mylinhadoFoguetinho = CAShapeLayer() + mylinhadoFoguetinho.strokeColor = #colorLiteral(red: 0.7450980544, green: 0.1568627506, blue: 0.07450980693, alpha: 1) + mylinhadoFoguetinho.lineWidth = 2 + mylinhadoFoguetinho.path = myFoguetinho.cgPath + mylinhadoFoguetinho.strokeStart = 1 + mylinhadoFoguetinho.zPosition = -1 + view.layer.addSublayer(mylinhadoFoguetinho) + + 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 = 2 + + + mylinhadoFoguetinho.add(animationGroup, forKey: "drawLine") + view.layer.addSublayer(mylinhadoFoguetinho) + + UIView.animate(withDuration: 2.0, delay: 0, options: [.curveLinear], animations: { + + self.Foguetinho.center.y = self.Foguetinho.frame.height/1.25 + + + }, completion: {finished in + + + }) + } + + override func viewWillAppear(_ animated: Bool) { + // chamada para arrumar o conteudo antes de aparecer na tela + self.Lua.frame.size.width = self.view.frame.width + //tamanho do planeta + self.Lua.center.y = self.view.frame.height + // posicao do planeta + + + self.Foguetinho.frame.size.height = self.view.frame.height * 0.15 + // tamanho do foguete + self.Foguetinho.center.x = self.view.center.x + // centralizando o foguete no centro da view + self.Foguetinho.center.y = self.view.frame.height - self.Lua.frame.height/1.7 + // centralizar o centro do y do foguete no 1.25 da altura dele + } + +} diff --git a/UIAnimation/CircularViewController.swift b/UIAnimation/CircularViewController.swift new file mode 100644 index 0000000..1275926 --- /dev/null +++ b/UIAnimation/CircularViewController.swift @@ -0,0 +1,64 @@ +// +// CircularViewController.swift +// UIAnimation +// +// Created by Rayane Xavier on 27/05/19. +// Copyright © 2019 Pedro Cacique. All rights reserved. +// + +import UIKit + +class CircularViewController: UIViewController { + + @IBOutlet weak var Foguetinho: UIImageView! + + @IBOutlet weak var Lua: UIImageView! + + override func viewDidLoad() { + + super.viewDidLoad() + + } + + override func viewDidAppear(_ animated: Bool) { + + let circlePath = UIBezierPath(arcCenter: self.Lua.center, radius: self.Lua.frame.height, startAngle: 0, endAngle: .pi*2, clockwise: true) + let animation = CAKeyframeAnimation(keyPath: #keyPath(CALayer.position)) + animation.duration = 5.0 + animation.repeatCount = MAXFLOAT + animation.path = circlePath.cgPath + + Foguetinho.layer.add(animation,forKey: nil) + + let circleLayer = CAShapeLayer() + circleLayer.path = circlePath.cgPath + circleLayer.strokeColor = UIColor.white.cgColor + circleLayer.fillColor = UIColor.clear.cgColor + self.view.layer.addSublayer(circleLayer) + } + + func outraAnimacao(){ + UIView.animate(withDuration: 2.0, animations: { + self.Foguetinho.center.x = self.view.frame.width + self.Foguetinho.transform = self.Foguetinho.transform.rotated(by: 1.0 * .pi) + }) + } + + override func viewWillAppear(_ animated: Bool) { + // chamada para arrumar o conteudo antes de aparecer na tela + self.Lua.frame.size.width = self.view.frame.width + //tamanho do planeta + self.Lua.center.y = self.view.frame.height + // posicao do planeta + + + self.Foguetinho.frame.size.height = self.view.frame.height * 0.15 + // tamanho do foguete + self.Foguetinho.center.x = self.view.center.x + // centralizando o foguete no centro da view + self.Foguetinho.center.y = self.Foguetinho.frame.height/1.25 + // centralizar o centro do y do foguete no 1.25 da altura dele + } + +} + diff --git a/UIAnimation/OuroViewController.swift b/UIAnimation/OuroViewController.swift new file mode 100644 index 0000000..2603c60 --- /dev/null +++ b/UIAnimation/OuroViewController.swift @@ -0,0 +1,21 @@ +// +// Ouro.swift +// UIAnimation +// +// Created by Rayane Xavier on 27/05/19. +// Copyright © 2019 Pedro Cacique. All rights reserved. +// + +import Foundation +import UIKit + + +class OuroViewController: UIViewController { + + override func viewDidLoad() { + + super.viewDidLoad() + + } + +} diff --git a/UIAnimation/PrataViewController.swift b/UIAnimation/PrataViewController.swift new file mode 100644 index 0000000..5013b9b --- /dev/null +++ b/UIAnimation/PrataViewController.swift @@ -0,0 +1,23 @@ +// +// Prata.swift +// UIAnimation +// +// Created by Rayane Xavier on 27/05/19. +// Copyright © 2019 Pedro Cacique. All rights reserved. +// + +import Foundation +import UIKit + +class PrataViewController: UIViewController { + + @IBOutlet weak var Foguetinho: UIImageView! + + @IBOutlet weak var Lua: UIImageView! + + override func viewDidLoad() { + + super.viewDidLoad() + + } +} diff --git a/UIAnimation/ViewController.swift b/UIAnimation/ViewController.swift index 9804cbb..da0e9eb 100644 --- a/UIAnimation/ViewController.swift +++ b/UIAnimation/ViewController.swift @@ -10,11 +10,54 @@ import UIKit class ViewController: UIViewController { + @IBOutlet weak var Lua: UIImageView! + @IBOutlet weak var Foguetinho: UIImageView! + override func viewDidLoad() { + super.viewDidLoad() } + + override func viewDidAppear(_ animated: Bool) { + UIView.animate(withDuration: 2.0, delay: 1, options: [ .curveEaseOut], animations: { + // options: opcional de colocar + // repeat: repete a animacao, autoreverse: faz o efeito contrario da animacao, curveEaseIn: comeca lento e depois acelera, curveEaseOut: comeca rapido e depois desacelera, curveEaseInOut: suave, acelera, suave. + self.Foguetinho.center.y = self.view.frame.height - self.Lua.frame.height/2 + self.Foguetinho.transform = self.Foguetinho.transform.rotated(by: .pi) + // transforma: transforma o objeto durante a animacao, rotated: roda em 180 gruas o objeto + self.Foguetinho.transform = self.Foguetinho.transform.scaledBy(x: 2, y: 2) + // aumenta o objeto pelo dobro do tamanho + }, completion: {finished in + // self.Foquetinho.image = UIImage(named: "rocket2.png") + self.outraAnimacao() + + }) +} + func outraAnimacao(){ + UIView.animate(withDuration: 2.0, animations: { + self.Foguetinho.center.x = self.view.frame.width + self.Foguetinho.transform = self.Foguetinho.transform.rotated(by: 1.0 * .pi) + }) + } + + override func viewWillAppear(_ animated: Bool) { + // chamada para arrumar o conteudo antes de aparecer na tela + self.Lua.frame.size.width = self.view.frame.width + //tamanho do planeta + self.Lua.center.y = self.view.frame.height + // posicao do planeta + + + self.Foguetinho.frame.size.height = self.view.frame.height * 0.15 + // tamanho do foguete + self.Foguetinho.center.x = self.view.center.x + // centralizando o foguete no centro da view + self.Foguetinho.center.y = self.Foguetinho.frame.height/1.25 + // centralizar o centro do y do foguete no 1.25 da altura dele + } + } From 4f00bda56a2cc3bb96c759113dde36f945a2ca8b Mon Sep 17 00:00:00 2001 From: raxanob Date: Tue, 28 May 2019 19:25:09 -0300 Subject: [PATCH 2/2] Fase prata --- UIAnimation.xcodeproj/project.pbxproj | 4 + .../UserInterfaceState.xcuserstate | Bin 31312 -> 35038 bytes UIAnimation/Base.lproj/Main.storyboard | 51 +++++++++++ UIAnimation/BronzeViewController.swift | 1 + UIAnimation/PrataShowViewController.swift | 32 +++++++ UIAnimation/PrataViewController.swift | 86 ++++++++++++++++++ 6 files changed, 174 insertions(+) create mode 100644 UIAnimation/PrataShowViewController.swift diff --git a/UIAnimation.xcodeproj/project.pbxproj b/UIAnimation.xcodeproj/project.pbxproj index e444af7..84dfc87 100644 --- a/UIAnimation.xcodeproj/project.pbxproj +++ b/UIAnimation.xcodeproj/project.pbxproj @@ -16,6 +16,7 @@ E0A13E6A229C59FD007A6007 /* PrataViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0A13E69229C59FD007A6007 /* PrataViewController.swift */; }; E0A13E6C229C5A25007A6007 /* OuroViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0A13E6B229C5A25007A6007 /* OuroViewController.swift */; }; E0A13E6E229C7E17007A6007 /* CircularViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0A13E6D229C7E17007A6007 /* CircularViewController.swift */; }; + E0BA0D6F229DE5500042402C /* PrataShowViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0BA0D6E229DE5500042402C /* PrataShowViewController.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -30,6 +31,7 @@ E0A13E69229C59FD007A6007 /* PrataViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrataViewController.swift; sourceTree = ""; }; E0A13E6B229C5A25007A6007 /* OuroViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OuroViewController.swift; sourceTree = ""; }; E0A13E6D229C7E17007A6007 /* CircularViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CircularViewController.swift; sourceTree = ""; }; + E0BA0D6E229DE5500042402C /* PrataShowViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrataShowViewController.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -67,6 +69,7 @@ E0A13E6D229C7E17007A6007 /* CircularViewController.swift */, E0A13E67229C59B8007A6007 /* BronzeViewController.swift */, E0A13E69229C59FD007A6007 /* PrataViewController.swift */, + E0BA0D6E229DE5500042402C /* PrataShowViewController.swift */, E0A13E6B229C5A25007A6007 /* OuroViewController.swift */, 778CE9D5229BF77300F5483E /* Main.storyboard */, 778CE9D8229BF77600F5483E /* Assets.xcassets */, @@ -152,6 +155,7 @@ 778CE9D2229BF77300F5483E /* AppDelegate.swift in Sources */, E0A13E6E229C7E17007A6007 /* CircularViewController.swift in Sources */, E0A13E6A229C59FD007A6007 /* PrataViewController.swift in Sources */, + E0BA0D6F229DE5500042402C /* PrataShowViewController.swift in Sources */, E0A13E68229C59B8007A6007 /* BronzeViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/UIAnimation.xcodeproj/project.xcworkspace/xcuserdata/rayanexavier.xcuserdatad/UserInterfaceState.xcuserstate b/UIAnimation.xcodeproj/project.xcworkspace/xcuserdata/rayanexavier.xcuserdatad/UserInterfaceState.xcuserstate index 13c03f0b6f3078c156203322ff34ea616d9a2c44..2535f7a8799acac2b6fd0bcbffa941e3081c8e6f 100644 GIT binary patch delta 17390 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 delta 14520 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UIAnimation/BronzeViewController.swift b/UIAnimation/BronzeViewController.swift index 608aa89..7bdda6e 100644 --- a/UIAnimation/BronzeViewController.swift +++ b/UIAnimation/BronzeViewController.swift @@ -10,6 +10,7 @@ import Foundation import UIKit class BronzeViewController: UIViewController { + @IBOutlet weak var Foguetinho: UIImageView! @IBOutlet weak var Lua: UIImageView! diff --git a/UIAnimation/PrataShowViewController.swift b/UIAnimation/PrataShowViewController.swift new file mode 100644 index 0000000..8a68a3f --- /dev/null +++ b/UIAnimation/PrataShowViewController.swift @@ -0,0 +1,32 @@ +// +// PrataShow.swift +// UIAnimation +// +// Created by Rayane Xavier on 28/05/19. +// Copyright © 2019 Pedro Cacique. All rights reserved. +// + +import Foundation +import UIKit + +class PrataShowViewController: UIViewController { + + @IBOutlet weak var Foguetinho: UIImageView! + + @IBOutlet weak var Lua: UIImageView! + override func viewDidLoad() { + + super.viewDidLoad() + + self.Lua.frame.size.width = self.view.frame.width + self.Lua.center.y = self.view.frame.height + + self.Foguetinho.frame.size.height = self.view.frame.height * 0.15 + // tamanho do foguete + self.Foguetinho.center.x = self.view.center.x + // centralizando o foguete no centro da view + self.Foguetinho.center.y = self.view.frame.height - self.Lua.frame.height/1.7 + + } + +} diff --git a/UIAnimation/PrataViewController.swift b/UIAnimation/PrataViewController.swift index 5013b9b..996ddb6 100644 --- a/UIAnimation/PrataViewController.swift +++ b/UIAnimation/PrataViewController.swift @@ -15,9 +15,95 @@ class PrataViewController: UIViewController { @IBOutlet weak var Lua: UIImageView! + + @IBOutlet weak var textFildNome: UITextField! + + + @IBOutlet weak var textFildSenha: UITextField! + + @IBOutlet weak var ButtonLoginOutlet: UIButton! + + @IBAction func ButtonLogin(_ sender: Any) { + + let myFoguetinho = UIBezierPath() + myFoguetinho.move(to: CGPoint(x: self.Foguetinho.center.x, y: self.view.frame.height - self.Lua.frame.height/4)) + myFoguetinho.addLine(to: CGPoint(x: self.view.frame.width/2, y: self.Foguetinho.frame.height/1.25)) + + let mylinhadoFoguetinho = CAShapeLayer() + mylinhadoFoguetinho.strokeColor = #colorLiteral(red: 0.7450980544, green: 0.1568627506, blue: 0.07450980693, alpha: 1) + mylinhadoFoguetinho.lineWidth = 2 + mylinhadoFoguetinho.path = myFoguetinho.cgPath + mylinhadoFoguetinho.strokeStart = 1 + mylinhadoFoguetinho.zPosition = -1 + view.layer.addSublayer(mylinhadoFoguetinho) + + 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 = 1.25 + + + mylinhadoFoguetinho.add(animationGroup, forKey: "drawLine") + view.layer.addSublayer(mylinhadoFoguetinho) + + UIView.animate(withDuration: 1.25, delay: 0, options: [.curveLinear], animations: { + + self.Foguetinho.center.y = self.Foguetinho.frame.height/1.25 + + + }, completion: {finished in + + if let viewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "PrataShow") as? PrataShowViewController { + self.present(viewController, animated: true, completion: nil) + } + + }) + } + override func viewDidLoad() { super.viewDidLoad() } + override func viewDidAppear(_ animated: Bool) { + + self.textFildNome.center.x = self.view.center.x + self.textFildNome.center.y = self.view.frame.height/2.20 + + self.textFildSenha.center.x = self.view.center.x + self.textFildSenha.center.y = self.view.frame.height/1.65 + + } + + override func viewWillAppear(_ animated: Bool) { + // chamada para arrumar o conteudo antes de aparecer na tela + self.Lua.frame.size.width = self.view.frame.width + //tamanho do planeta + self.Lua.center.y = self.view.frame.height + // posicao do planeta + + UIView.animate(withDuration: 1.25) { + self.Foguetinho.frame.size.height = self.view.frame.height * 0.15 + // tamanho do foguete + self.Foguetinho.center.x = self.view.center.x + // centralizando o foguete no centro da view + self.Foguetinho.center.y = self.view.frame.height - self.Lua.frame.height/1.7 + + self.textFildNome.center.x = self.view.frame.minX + self.textFildNome.frame.width + self.textFildNome.frame.width + + self.textFildNome.center.y = self.view.frame.height/2.20 + + self.textFildSenha.center.x = self.view.frame.minX - self.textFildNome.frame.width + self.textFildSenha.center.y = self.view.frame.height/1.65 + } + + } }