카테고리 없음

Basic반 7회차

가애야 2024. 7. 10. 20:44

전날 숙제가 있었다

수직스택뷰 안에 수평스택뷰 넣기..

역시 혼자서 바로 하진 못했고 ㅋㅋㅋㅋ

수업 도중에 완성을했다

 

MVC등 나누기 위해 ViewController 말고 다른 뷰에 코드 작성하기

밑에는 참고용

되도록 보지 않고 작성해보기!

import UIKit
class MyLabelView: UILabel {
  init(text: String) {
    super.init(frame: .zero)
    self.text = text
    textAlignment = .center
    translatesAutoresizingMaskIntoConstraints = false
  }
  required init?(coder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
  }
}
//class MyLabelView: UIButton {
//  init(text: String) {
//    super.init(frame: .zero)
//    self.text = text
//    textAlignment = .center
//    translatesAutoresizingMaskIntoConstraints = false
//  }
//
//  required init?(coder: NSCoder) {
//    fatalError("init(coder:) has not been implemented")
//  }
//}
class CaculatorView: UIView {
  let helloLabel = UILabel()
  let button1: UILabel = MyLabelView(text: "1")
  let button2: UILabel = MyLabelView(text: "2")
  let button3: UILabel = MyLabelView(text: "3")//MyNameButton(text: "1")
  let button4: UILabel = {
    let label = UILabel()
    label.text = "4"
    label.textAlignment = .center
    label.translatesAutoresizingMaskIntoConstraints = false
    return label
  }()
  let button5: UILabel = {
    let label = UILabel()
    label.text = "5"
    label.textAlignment = .center
    label.translatesAutoresizingMaskIntoConstraints = false
    return label
  }()
  let button6: UILabel = {
    let label = UILabel()
    label.text = "6"
    label.textAlignment = .center
    label.translatesAutoresizingMaskIntoConstraints = false
    return label
  }()
  let button7: UILabel = {
    let label = UILabel()
    label.text = "7"
    label.textAlignment = .center
    label.translatesAutoresizingMaskIntoConstraints = false
    return label
  }()
  let button8: UILabel = {
    let label = UILabel()
    label.text = "8"
    label.textAlignment = .center
    label.translatesAutoresizingMaskIntoConstraints = false
    return label
  }()
  let button9: UILabel = {
    let label = UILabel()
    label.text = "9"
    label.textAlignment = .center
    label.translatesAutoresizingMaskIntoConstraints = false
    return label
  }()
  let myStackView: UIStackView = {
    let stackView = UIStackView(frame: .zero)
    stackView.translatesAutoresizingMaskIntoConstraints = false
    stackView.axis = .vertical
    stackView.alignment = .center
    stackView.distribution = .fillEqually
    stackView.backgroundColor = .yellow
    return stackView
  }()
  let myStackView2: UIStackView = {
    let stackView = UIStackView(frame: .zero)
    stackView.translatesAutoresizingMaskIntoConstraints = false
    stackView.axis = .vertical
    stackView.alignment = .center
    stackView.distribution = .fillEqually
    stackView.backgroundColor = .yellow
    return stackView
  }()
  let myStackView3: UIStackView = {
    let stackView = UIStackView(frame: .zero)
    stackView.translatesAutoresizingMaskIntoConstraints = false
    stackView.axis = .vertical
    stackView.alignment = .center
    stackView.distribution = .fillEqually
    stackView.backgroundColor = .yellow
    return stackView
  }()
  let mainStackView: UIStackView = {
    let stackView = UIStackView(frame: .zero)
    stackView.translatesAutoresizingMaskIntoConstraints = false
    stackView.axis = .horizontal
    stackView.alignment = .fill
    stackView.distribution = .fillEqually
    return stackView
  }()
  override init(frame: CGRect) {
    super.init(frame: frame)
    configureView()
  }
  required init?(coder: NSCoder) {
    super.init(coder: coder)
    configureView()
  }
  func configureView() {
    addSubview(mainStackView)
    mainStackView.addArrangedSubview(myStackView)
    mainStackView.addArrangedSubview(myStackView2)
    mainStackView.addArrangedSubview(myStackView3)
    myStackView.addArrangedSubview(button7)
    myStackView.addArrangedSubview(button4)
    myStackView.addArrangedSubview(button1)
    myStackView2.addArrangedSubview(button8)
    myStackView2.addArrangedSubview(button5)
    myStackView2.addArrangedSubview(button2)
    myStackView3.addArrangedSubview(button9)
    myStackView3.addArrangedSubview(button6)
    myStackView3.addArrangedSubview(button3)
    NSLayoutConstraint.activate([
      mainStackView.leadingAnchor.constraint(equalTo: leadingAnchor),
      mainStackView.trailingAnchor.constraint(equalTo: trailingAnchor),
      mainStackView.centerYAnchor.constraint(equalTo: centerYAnchor),
      mainStackView.heightAnchor.constraint(equalToConstant: 250)
    ])
  }
}
class ViewController: UIViewController {
  let calculatorView = CaculatorView()
  override func viewDidLoad() {
    super.viewDidLoad()
    view.backgroundColor = .systemPink
    configureView()
  }
  func configureView() {
    view.addSubview(calculatorView)
    calculatorView.translatesAutoresizingMaskIntoConstraints = false
    NSLayoutConstraint.activate([
      calculatorView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
      calculatorView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
      calculatorView.centerYAnchor.constraint(equalTo: view.centerYAnchor),
      calculatorView.heightAnchor.constraint(equalToConstant: 250)
    ])
  }
  @objc func buttonTapped() {
    calculatorView.helloLabel.text = "Leeo"
    //    helloLabel.text = "Leeo"
  }
}