output練習の第2回目です。

 

今回も講義で作ったアプリに、少し改良してみました。

 

講義では、imageViewの画像をタイマーのように回す「timerアプリ」を作成しました。

 

この講義で重要なのが、『for in 文』の基礎を覚える事です。

 

アプリ自体は、とても簡素でコードも短いです。

 

このアプリに、簡単な変更を加えてみました。

 

具体的には、timerで回す物を3つにして見ました。

 

講義では、画像だけでした。

 

しかし、「timer」と言えば、やはり数字だと思いまして、『Int』でやって見ました。

 

そこに、文字でもやって見ようと思い『String』も追加して見ました。

 

それと、リセット出来たらという事で、ボタンに『Reset』ボタンを追加しました。

 

あと、前回の時は『if文』に、直接実行文を記入しました。

 

纏めると、timerで回す対象を『int,string』を追加し、ボタンに『reset』を追加しました。

 

今回は、outputのLevel2なので、こんなところですかね。

 

 

 

 

 

import UIKit

 

class ViewController: UIViewController {

    

    @IBOutlet weak var imageView: UIImageView!

    

    @IBOutlet weak var stringLabel: UILabel!

    

    @IBOutlet weak var intLabel: UILabel!

    

    @IBOutlet weak var startButton: UIButton!

    

    @IBOutlet weak var stopButton: UIButton!

    

    var timer = Timer()

    var count = 0

    var stringCount = 0

    var intCount = 0

    

    var imageArray = [UIImage]()

    var stringArray = ["Swift","kotolin","HTML","CSS","JS"]

    

    

    override func viewDidLoad() {

        super.viewDidLoad()

        

        stopButton.isEnabled = false

        

        count = 0

        for count in 0..<5{

            print(count)

            let image = UIImage(named: "\(count)")

            imageArray.append(image!)

        }

        imageView.image = UIImage(named: "0")

        

        stringCount = 0

        for stringCount in 0..<4{

            print(stringCount)

        }

        stringLabel.text = String(stringArray[0])

        

        intCount = 0

        for intCount in 0..<5{

            print(intCount)

        }

        intLabel.text = String(intCount)

    }

    

    func startTimer(){

        timer = Timer.scheduledTimer(timeInterval: 0.2, target: self, selector: #selector(timerUpDate), userInfo: nil, repeats: true)

    }

    

    @objc func timerUpDate() {

        count = count + 1

        if count > 4 {

            count = 0

        }

        imageView.image = imageArray[count]

        

        stringCount = stringCount + 1

        if stringCount > 4 {

            stringCount = 0

        }

        stringLabel.text = String(stringArray[stringCount])

        

        intCount = intCount + 1

        if intCount > 4 {

            intCount = 0

        }

        intLabel.text = String(intCount)

    }

    

    

 

    @IBAction func start(_ sender: Any) {

        startTimer()

        

        startButton.isEnabled = false

        stopButton.isEnabled = true

    }

    

    @IBAction func stop(_ sender: Any) {

        startButton.isEnabled = true

        stopButton.isEnabled = false

        

        timer.invalidate()

    }

    

    @IBAction func reset(_ sender: Any) {

        count = 0

        imageView.image = UIImage(named: "0")

        

        stringCount = 0

        stringLabel.text = String(stringArray[0])

        

        intCount = 0

        intLabel.text = String(intCount)

    }

    

}