[231213] Today I Learned

YoungHyun Kim·2023년 12월 13일
1

TIL ✍️

목록 보기
17/68

간단한 카운터 앱 만들어보기

구현해야 하는 내용

  1. 0으로 적혀진 라벨이 뷰의 정 가운데에(오토레이아웃 사용) 있어야 한다.
  2. 증가, 감소라고 적힌 버튼을 라벨 기준 위, 아래 16px 만큼 위치시킨다.
  3. 증가 버튼을 누르면 라벨의 숫자가 1 증가하고, 감소를 누르면 1 감소하도록 설계한다.

뷰와 코드 구성

viewImage

//
//  ViewController.swift
//  SimpleCounterApp
//
//  Created by 영현 on 12/12/23.
//

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBOutlet weak var countLabel: UILabel!
    
    @IBAction func countUpButton(_ sender: UIButton) {
        
        if var count = self.countLabel.text {
            if var count = Int(count) {
                count = (Int(count) + 1)
                self.countLabel.text = String(count)
            }
        }
    }
    
    @IBAction func countDownButton(_ sender: Any) {
        
        if var count = self.countLabel.text {
            if var count = Int(count) {
                count = (Int(count) - 1)
                self.countLabel.text = String(count)
            }
        }
    }
}

셀프 해설 및 개선점

해설

  • 라벨을 countLabel 으로 네이밍했다.
  • 버튼을 눌렀을 때 실행될 함수를 구성했다.
    • count 라는 변수를 선언하고, 옵셔널 바인딩을 진행한 다음 1씩 증가시키고 self.countLabel.textString 형식으로 저장하는 함수를 구성했다.

개선점

  1. 나 같은 경우에는 증가시킬 변수를 @IBAction 함수 내부에 선언했는데, 클래스 내부에 private var 형태의 변수를 만들었으면 불필요한 옵셔널 바인딩을 진행하지 않았어도 되었을 것 같다.
  2. 프로퍼티 옵저버를 사용하면, count 변수가 변화할 때 마다 UILabel에 표시할 수 있도록 만들 수 있을 것 같다.

개선을 진행한 다음에 이어서 내용을 추가하도록 해보겠다.

profile
iOS 개발자가 되고 싶어요

0개의 댓글