iOS Animations by Tutorials by 2019
Author:2019
Language: eng
Format: epub
Publisher: Ray Wenderlich
Intermediate keyframe animations
First you need to add the balloon image on screen. Open ViewController.swift, then add the following code to the bottom of login():
let balloon = CALayer() balloon.contents = UIImage(named: "balloon")!.cgImage balloon.frame = CGRect(x: -50.0, y: 0.0, width: 50.0, height: 65.0) view.layer.insertSublayer(balloon, below: username.layer)
In the code above, you create a new layer with the balloon image as its contents.
If you need to show an image on screen but don’t need all the benefits of using a UIView (such as Auto Layout constraints, attaching gesture recognizers and so forth), you can simply use a CALayer like in the code example above.
You position the layer near the top left corner, just outside of the visible area of the screen. Finally, you insert the layer below the username field so the balloon appears behind all the other elements in your form.
Now you can create the animation in few familiar steps. Add the following code underneath the previous code:
let flight = CAKeyframeAnimation(keyPath: "position") flight.duration = 12.0
Here you create a keyframe animation and set its duration to 12.0, the approximate duration of the faux authentication process.
Next, add the following key value points and times:
flight.values = [ CGPoint(x: -50.0, y: 0.0), CGPoint(x: view.frame.width + 50.0, y: 160.0), CGPoint(x: -50.0, y: loginButton.center.y) ].map { NSValue(cgPoint: $0) } flight.keyTimes = [0.0, 0.5, 1.0]
Note how you use map to neatly convert an array of points into an array of points boxed as NSValues. Ain’t Swift great?
This animates the balloon along the path that connects the three points you assigned to values, like so:
Download
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Hello! Python by Anthony Briggs(9915)
The Mikado Method by Ola Ellnestam Daniel Brolund(9778)
Dependency Injection in .NET by Mark Seemann(9339)
Sass and Compass in Action by Wynn Netherland Nathan Weizenbaum Chris Eppstein Brandon Mathis(7778)
The Well-Grounded Java Developer by Benjamin J. Evans Martijn Verburg(7557)
Svelte with Test-Driven Development by Daniel Irvine(7159)
Test-Driven Development with PHP 8 by Rainier Sarabia(6886)
Layered Design for Ruby on Rails Applications by Dementyev Vladimir;(6756)
Secrets of the JavaScript Ninja by John Resig & Bear Bibeault(6532)
Secrets of the JavaScript Ninja by John Resig Bear Bibeault(6413)
Web Development with Django by Ben Shaw Saurabh Badhwar(6219)
React Application Architecture for Production by Alan Alickovic(5945)
Jquery UI in Action : Master the concepts Of Jquery UI: A Step By Step Approach by ANMOL GOYAL(5806)
Kotlin in Action by Dmitry Jemerov(5062)
Audition by Ryu Murakami(4583)
Software Architecture for Web Developers by Mihaela Roxana Ghidersa(4452)
Hands-On Full-Stack Web Development with GraphQL and React by Sebastian Grebe(4317)
Accelerating Server-Side Development with Fastify by Manuel Spigolon Maksim Sinik & Matteo Collina(4298)
Functional Programming in JavaScript by Mantyla Dan(4038)
