계산기 만들기 3일차

댕바·2024년 6월 26일
0

멘탈이 우르르 쏟아져 내려간다.

스택뷰에 1번 실패하고
스택뷰에 2번 실패하고
스택뷰에 3번 실패하고
다시금 주변 도움을 받아서 만들게 되었다

스택뷰에 뭐가 잘못됫는지 아직도 햇갈리는 부분은 너무나 많고
또 모르는 부분도 상당하다 다시금 계속 공부하면서 모르는부분은 계속 다시 채워 나갈 예정이다.

ㅡㅡㅡㅡㅡㅡㅡㅡ

import UIKit
import SnapKit

class ViewController: UIViewController {

let Label = UILabel()
let stack1 = UIStackView()
let stack2 = UIStackView()
let stack3 = UIStackView()
let stack4 = UIStackView()
let vertical = UIStackView()

override func viewDidLoad() {
    super.viewDidLoad()
    NumberLable()
}
private func NumberLable() {
    view.backgroundColor = .black
    
    // 레이블
    Label.text = "12345"
    Label.textColor = .white
    Label.textAlignment = .right
    Label.font = .boldSystemFont(ofSize: 60)
    
    view.addSubview(Label)
    Label.snp.makeConstraints{
        $0.top.equalToSuperview().offset(200)
        $0.leading.equalToSuperview().offset(30)
        $0.trailing.equalToSuperview().offset(-30)
        $0.height.equalTo(100)
    }
    firstHorizontalStackView()
    myverticalStackView()
}
// 버튼과 스택뷰를 만들기 위한 함수 만들기
private func firstHorizontalStackView() {
    let stackViews = [stack1, stack2, stack3, stack4] // 4개의 스택뷰를 구성해준다
    let btn = [["7","8","9","+"], ["4","5","6","-"], ["1","2","3","*"], ["AC","0","=","/"]]
    // let btn = 은 내가 배열의 4개의 인덱스를 만들어준다
    
    // enumerated() 메서드는 컬렉션(배열, 딕셔너리 등)의 각 요소에 대해 인덱스와 함께 순회 할 수 있도록 도와줍니다.
    for (i, stackViews) in stackViews.enumerated() {
        makeHorizontalStackView(stackView: stackViews) // 가로 스택뷰에 추가한다
        bunHorizontalStackView(stackview: stackViews , titles: btn[i])
        // bunHorizontalStackView 함수에서 한개씩의 인덱스가 들어가서 버튼을 생성한다 0...3까지
    }
    
    // 첫번째로 먼저 할일 스택뷰를 먼저 구성해준다
    func makeHorizontalStackView(stackView: UIStackView) {
        stackView.axis = .horizontal
        stackView.backgroundColor = .black
        stackView.spacing = 10
        stackView.distribution = .fillEqually
        
        view.addSubview(stackView)
        stackView.snp.makeConstraints{
            $0.width.equalTo(350)
            $0.height.equalTo(80)
            $0.centerX.equalToSuperview()
        }
    }
    // 버튼만드는 스택뷰
    func bunHorizontalStackView(stackview: UIStackView, titles: [String]) {
        for title in titles {
            
        let buttonLabel = UIButton()
        buttonLabel.setTitle(String(title), for: .normal)
        buttonLabel.backgroundColor = UIColor(red: 58/255, green: 58/255, blue: 58/255, alpha: 1.0)
        buttonLabel.frame.size.height = 80
        buttonLabel.frame.size.width = 80
        buttonLabel.layer.cornerRadius = 40
        buttonLabel.titleLabel?.font = .boldSystemFont(ofSize: 30)
        
        stackview.addArrangedSubview(buttonLabel)
        }
    }
}

private func myverticalStackView() {
    vertical.axis = .vertical
    vertical.backgroundColor = .black
    vertical.spacing = 10
    vertical.distribution = .fillEqually
    
    view.addSubview(vertical)
    vertical.snp.makeConstraints{
        $0.width.equalTo(350)
        $0.top.equalTo(Label.snp.bottom).offset(60)
        $0.centerX.equalToSuperview()
    }
    
    vertical.addArrangedSubview(stack1)
    vertical.addArrangedSubview(stack2)
    vertical.addArrangedSubview(stack3)
    vertical.addArrangedSubview(stack4)
}

}

참 어렵고 모르는것 투성이인데 내가 과연 전부를 이해 할수 있을까?
라는 생각이 드는 하루이다.

앞으로 더 어려워지고 더 모르는거 투성이일텐데
겁을 먹고있다.

앞으로 더 많은것들이 있으면 이건 정말 쉬운거겠지 라고 생각하면서
그 어려운걸 해쳐나가면 앞으로는 이정도는 껌이 될 수 있지 않을까
하루하루 행복회로를 하며 혼자 또 끄적이는 일기장을 작성한다

profile
어디서나 최선을 다 하자

0개의 댓글

관련 채용 정보