FS.O2 FS.O2 - 2 years ago 474
Swift Question

Counting up/down numbers animation

I have an

with a number in the center of each
in it.

I want that when I swipe from view to view, the number will begin at 0 and count up until it gets to the correct number (or if the number is negative - count down) like in this gif:


How can I do that?

Thank you!

Answer Source

You can use NSTimer to achieve this.

Here is example project I created for you.

Create layout like this:

enter image description here

Then in your ViewController do like so:

import UIKit

class ViewController: UIViewController {

    @IBOutlet var countingLabel: UILabel!
    var number = 0
    var destinationNumber = 30
    var timer: NSTimer!

    override func viewDidLoad() {
        // Do any additional setup after loading the view, typically from a nib.

    override func didReceiveMemoryWarning() {
        // Dispose of any resources that can be recreated.

    @IBAction func startButtonTapped(sender: AnyObject) {
        timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "countUp", userInfo: nil, repeats: true)

    func countUp() {
        if number < destinationNumber {
            number += 1
            countingLabel.text = "\(number)"
        } else {

It will work.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download