Here, we are going to make a Timer app for an iOS, using Swift 3 and Xcode 8.

Open Xcode and create a new Single View Application and name it Timer (You can name it anything you like).

Click Main.StoryBoard.

Add a label to display the seconds (We are going to set 240 as default ). Resize it in Properties menu.

Add a navigation bar to the top and change the title of Timer.

Add two Bar buttons on the top navigation bar and change the System Item into play and pause.

Add a Toolbar to the bottom and rename the item to “-10”.

Add two bar button items and name them “Reset “and “+10”.

Click ViewController.Swift.



Now, control + drag label to the program and name it “timerLabel”.

Control + drag each button to the code and name them “play”,”pause”,”minusTen”,”plusTen”,”resetTimer”(Connection type must be Button).

Edit the code, as given below.

  1. import UIKit
  2. class ViewController: UIViewController {
  3. var timer = Timer()
  4. var time = 240
  5. func decreaseTimer() {
  6. if time > 0 {
  7. time = time - 1
  8. timerLabel.text = String(time)
  9. } else {
  10. timer.invalidate()
  11. }
  12. }
  13. @IBOutlet weak
  14. var timerLabel: UILabel!@IBAction func play(_ sender: Any) {
  15. timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.decreaseTimer), userInfo: nil, repeats: true)
  16. }
  17. @IBAction func pause(_ sender: Any) {
  18. timer.invalidate()
  19. }
  20. @IBAction func minusTen(_ sender: Any) {
  21. if time > 10 {
  22. time -= 10
  23. timerLabel.text = String(time)
  24. }
  25. }
  26. @IBAction func plusTen(_ sender: Any) {
  27. time += 10
  28. timerLabel.text = String(time)
  29. }
  30. @IBAction func resetTimer(_ sender: Any) {
  31. time = 240
  32. timerLabel.text = String(time)
  33. }
  34. override func viewDidLoad() {
  35. super.viewDidLoad()
  36. // Do any additional setup after loading the view, typically from a nib.
  37. }
  38. override func didReceiveMemoryWarning() {
  39. super.didReceiveMemoryWarning()
  40. // Dispose of any resources that can be recreated.
  41. }
  42. }

Now, run the app.