앱 요구사항
카운터 앱 따라하기 전에 한번 코드 작성을 해보자 싶어서 해봤는데 (일단 코드베이스로 먼저 만들어 보았다.)
음? 작성하면서 뭔가 이상해서 혼자하는거 멈춤 ㅋㅋㅋㅋ
요구사항 제대로 안보고 하면 이렇게 된다 ㅎ
라벨에 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 사용하지 않고 해보면 어떨까요
'iOS (스파르타) > 앱 개발 입문' 카테고리의 다른 글
카운터 앱 개발 - storyboard 사용 (0) | 2024.06.24 |
---|---|
카운터 앱 개발 - 코드베이스 SnapKit 미사용 (0) | 2024.06.24 |
SNAPKIT (0) | 2024.06.21 |
코드베이스 작성 (0) | 2024.06.20 |
iOS 앱 개발 입문 - 2 (UIKit, 스토리보드 UI) (0) | 2024.06.19 |