본문 바로가기

iOS (스파르타)/앱 개발 입문

카운터 앱 개발 - 코드베이스 SnapKit 사용

앱 요구사항

 

 

카운터 앱 따라하기 전에 한번 코드 작성을 해보자 싶어서 해봤는데 (일단 코드베이스로 먼저 만들어 보았다.)

음? 작성하면서 뭔가 이상해서 혼자하는거 멈춤 ㅋㅋㅋㅋ

요구사항 제대로 안보고 하면 이렇게 된다 ㅎ

라벨에 0은 텍스트로 그냥 넣는게 아니고 Int형으로 넣었어야했고 ㅎ

선언을 더 해줬어야했다 ㅎㅎ

결국 코드보고 작성,, 또 에러가 날뻔했지만 화면이 나와주어서 고마웠다

import UIKit
import SnapKit

class ViewController: UIViewController {
    
    private var number: Int = 0
    let label = UILabel()
    let plusButton = UIButton()
    let minusButton = UIButton()

    override func viewDidLoad() {
        super.viewDidLoad()
        configureUI()
    }
    
    private func configureUI() {
        view.backgroundColor = .black
        label.text = "\(number)"
        label.textColor = .white
        label.font = .boldSystemFont(ofSize: 45)
        label.textAlignment = .center
        minusButton.setTitle("감소", for: .normal)
        minusButton.backgroundColor = .red
        minusButton.setTitleColor(.white, for: .normal)
        minusButton.layer.cornerRadius = 8
        minusButton.addTarget(self, action: #selector(minusButtonTapped), for: .touchDown)
        plusButton.setTitle("증가", for: .normal)
        plusButton.backgroundColor = .blue
        plusButton.setTitleColor(.white, for: .normal)
        plusButton.layer.cornerRadius = 8
        plusButton.addTarget(self, action: #selector(plusButtonTapped), for: .touchDown)
        
        [label, minusButton, plusButton]
            .forEach { view.addSubview($0) }
        
        label.snp.makeConstraints {
            $0.width.equalTo(80)
            $0.center.equalToSuperview()
        }
        
        minusButton.snp.makeConstraints {
            $0.centerY.equalTo(label.snp.centerY)
            $0.width.equalTo(60)
            $0.height.equalTo(30)
            $0.trailing.equalTo(label.snp.leading).offset(-32)
        }
        
        plusButton.snp.makeConstraints {
            $0.centerY.equalTo(label.snp.centerY)
            $0.width.equalTo(60)
            $0.height.equalTo(30)
            $0.leading.equalTo(label.snp.trailing).offset(32)
        }
    }
    
    @objc
    private func minusButtonTapped() {
        self.number -= 1
        label.text = "\(number)"
    }
    
    @objc
    private func plusButtonTapped() {
        self.number += 1
        label.text = "\(number)"
    }


}

 

 

 

응용 - 초기화 버튼 만들기

 

스스로 최대한,,?

일단 초기화 버튼을 추가해줘야하고..

초기화 버튼을 눌렸을 때 0으로 돌아가게 리셋환경 설정

 

ㅎ 잘 따라해볼게요~

보고한거 반 알아서한거 반.. ㅎㅎ

 

 

잘 돌아가네요!

 

이걸 SnapKit 사용하지 않고 해보면 어떨까요